vn-ansible/roles/db/tasks/mariadb.yml

156 lines
3.6 KiB
YAML
Raw Normal View History

2025-02-04 08:30:12 +00:00
- name: Ensure Install requirements for MariaDB repository setup script
apt:
name: "{{ mariadb_requeriments }}"
state: present
install_recommends: no
- name: Download required setup files
get_url:
url: "{{ item.url }}"
dest: "{{ item.dest }}"
mode: "{{ item.mode }}"
loop: "{{ downloads }}"
- name: Run MariaDB repository setup script
command:
cmd: "/bin/bash /tmp/mariadb_repo_setup --mariadb-server-version=10.11.10"
creates: "/etc/apt/sources.list.d/mariadb.list"
- name: Install Percona repository package
apt:
deb: "/tmp/percona-release_latest.generic_all.deb"
state: present
install_recommends: no
2025-02-06 13:17:38 +00:00
- name: Update apt cache
apt:
update_cache: yes
2025-02-04 08:30:12 +00:00
- name: Install MariaDB packages
apt:
name: "{{ mariadb_base_packages }}"
state: present
install_recommends: no
- name: Add tmpfs in /etc/fstab
blockinfile:
path: /etc/fstab
marker: "# {mark} ANSIBLE-MANAGED TMPFS ENTRY"
block: |
tmpfs /mnt/mysqltmp tmpfs rw,size={{ mysqltmpsize }} 0 0
register: fstab
- name: Configure MariaDB memory check CRON
2025-02-04 08:30:12 +00:00
template:
src: check-memory.cron
dest: /etc/cron.d/vn-check-memory
owner: root
group: root
mode: u=rw,g=r,o=r
- name: Configure MariaDB scheduler log CRON
copy:
src: scheduler-log.cron
dest: /etc/cron.d/vn-scheduler-log
2025-02-04 08:30:12 +00:00
owner: root
group: root
mode: u=rw,g=r,o=r
- name: Insert MySQL certificates
no_log: true
copy:
content: "{{ item.content }}"
dest: "{{ item.dest }}"
owner: mysql
group: mysql
mode: "{{ item.mode }}"
loop: "{{ certificates }}"
notify: restart-mariadb
2025-02-06 13:17:38 +00:00
- name: Ensure required directories exist
file:
path: "{{ item.path }}"
state: directory
owner: "{{ item.owner }}"
group: "{{ item.group }}"
mode: "{{ item.mode }}"
loop: "{{ required_directories }}"
- name: Copy required MariaBackup files and scripts
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
owner: root
group: root
mode: "{{ item.mode }}"
loop: "{{ required_mariabackup_files_and_scripts }}"
2025-02-04 08:30:12 +00:00
- name: Set MariaDB common configuration
copy:
src: conf/z90-vn.cnf
dest: /etc/mysql/mariadb.conf.d/
owner: root
group: root
mode: u=rw,g=r,o=r
notify: restart-mariadb
- name: Set MariaDB local configuration template
2025-02-04 08:30:12 +00:00
template:
src: conf/z99-local.cnf
2025-02-04 08:30:12 +00:00
dest: /etc/mysql/mariadb.conf.d/
owner: root
group: root
mode: u=rw,g=r,o=r
- name: Set MariaBackup connection configuration
2025-02-04 08:30:12 +00:00
template:
src: mariabackup/my.cnf
2025-02-04 08:30:12 +00:00
dest: /root/mariabackup/
owner: root
group: root
mode: u=rw,g=,o=
- name: Override MariaDB systemd service configuration
copy:
src: mariadb_override.conf
dest: /etc/systemd/system/mariadb.service.d/override.conf
owner: root
group: root
mode: u=rw,g=r,o=r
notify: reload-systemd
- name: Set MariaDB NRPE configuration
copy:
src: nrpe/95-mariadb.cfg
dest: /etc/nagios/nrpe.d/
owner: root
group: root
mode: u=rw,g=r,o=r
notify: restart-nrpe
2025-02-04 08:30:12 +00:00
- name: Check if /var/lib/mysql/ exists
stat:
path: /var/lib/mysql/
register: mysql_dir
- when: mysql_dir.stat.exists
block:
- name: Sync MySQL data directory
synchronize:
src: /var/lib/mysql/
dest: /mnt/mysqldata/mysql/
archive: true
compress: true
recursive: true
delegate_to: "{{ inventory_hostname }}"
- name: Remove old MySQL data after sync
file:
path: /var/lib/mysql/
state: absent
2025-02-06 13:17:38 +00:00
- name: Mount all filesystems from /etc/fstab
command: mount -a
when: fstab.changed