Files
ansible/roles/mariadb/tasks/main.yml
2024-07-05 11:53:33 +02:00

116 lines
2.8 KiB
YAML

---
- name: Install mariadb
ansible.builtin.package:
name: mariadb-server
state: present
- name: Create mysql directory
ansible.builtin.file:
path: /srv/mysql
owner: mysql
group: mysql
state: directory
mode: 0755
- name: Populate mysql directory
ansible.builtin.command:
cmd: /usr/bin/mysql_install_db --datadir=/srv/mysql
creates: /srv/mysql/ibdata1
notify: Restart mariadb
- name: Replace conffile
ansible.builtin.template:
src: 50-server.cnf.j2
dest: /etc/mysql/mariadb.conf.d/50-server.cnf
mode: 0644
notify: Restart mariadb
- name: Debian upgrade file conf
ansible.builtin.template:
src: debian.cnf.j2
dest: /etc/mysql/debian.cnf
owner: root
group: root
mode: '0600'
notify: Restart mariadb
- name: Force handlers
ansible.builtin.meta: flush_handlers
- name: Install python-mysql
ansible.builtin.package:
name: python3-pymysql
state: present
- name: Check if .my.cnf file exists
ansible.builtin.stat:
path: /root/.my.cnf
register: dot_my_cnf
- name: Root password
community.mysql.mysql_user:
login_unix_socket: "/var/run/mysqld/mysqld.sock"
host: localhost
name: root
password: "{{ mariadb_root_pass }}"
when: not dot_my_cnf.stat.exists
- name: Put .my.cnf file
ansible.builtin.template:
src: dot.my.cnf.j2
dest: ~/.my.cnf
mode: '0600'
- name: Root password (follow-up)
community.mysql.mysql_user:
login_user: root
host: "{{ item }}"
name: root
password: "{{ mariadb_root_pass }}"
loop:
- "localhost"
- "127.0.0.1"
- "::1"
- name: Scripted version of mysql_secure_installation
ansible.builtin.command:
cmd: "{{ item }}"
creates: ~/mysql_secure_installation
loop:
- "mysql -e \"DELETE FROM mysql.user WHERE User='';\""
- "mysql -e \"DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');\""
- "mysql -e \"DROP DATABASE IF EXISTS test;\""
- "mysql -e \"DELETE FROM mysql.db WHERE Db='test' OR Db='test\\_%';\""
- "mysql -e \"FLUSH PRIVILEGES;\""
- touch ~/mysql_secure_installation
- name: Create MariaDB service dir
ansible.builtin.file:
path: /etc/systemd/system/mariadb.service.d/
state: directory
mode: 0755
- name: Create MariaDB service override
ansible.builtin.copy:
src: files/override.conf
dest: /etc/systemd/system/mariadb.service.d/override.conf
mode: 0644
notify:
- Restart mariadb
- Daemon-reload
- name: Install backup script
ansible.builtin.copy:
src: files/backup_mysql.sh
dest: /usr/local/bin/backup_mysql.sh
mode: '0755'
- name: Cron backup script
ansible.builtin.cron:
name: "MariaDB backup"
hour: "{{ mariadb_backup_hour }}"
minute: "{{ mariadb_backup_minute }}"
job: "/usr/local/bin/backup_mysql.sh"
state: present