ansible/roles/mariadb/tasks/main.yml
2022-02-25 17:03:03 +00:00

137 lines
2.7 KiB
YAML

---
- name: install packages
package:
name: "{{ item }}"
state: installed
with_items:
- mariadb-server
- python3-PyMySQL
- name: fix selinux contexts from data directory
sefcontext:
path: "/export/mariadb(/.*)?"
setype: mysqld_db_t
- name: create data directory
file:
path: /export/mariadb
state: directory
mode: 0750
owner: mysql
group: mysql
setype: _default
- name: link data diretory
file:
dest: /srv/mariadb
src: /export/mariadb
state: link
owner: root
group: "{{ ansible_wheel }}"
follow: false
- name: configure data directory
lineinfile:
path: /etc/my.cnf.d/mariadb-server.cnf
regexp: "^datadir=.*"
line: datadir=/srv/mariadb
notify: restart mariadb
- name: create additional config directory
file:
path: /etc/mysql
state: directory
mode: 0750
owner: root
group: mysql
- name: allow mysql user to read private key
user:
name: mysql
groups: hostkey
append: true
notify: restart mariadb
- name: create tls configuration
template:
dest: /etc/my.cnf.d/tls.cnf
src: tls.cnf.j2
mode: 0644
owner: root
group: "{{ ansible_wheel }}"
notify: restart mariadb
- name: create local configuration
copy:
dest: /etc/my.cnf.d/local.cnf
content: "[mariadb]\ninnodb_file_per_table=ON\n"
mode: 0644
owner: root
group: "{{ ansible_wheel }}"
notify: restart mariadb
- name: enable service
service:
name: mariadb
state: started
enabled: true
- name: set root password
mysql_user:
name: root
password: "{{ mariadb_root_password }}"
login_user: root
login_password: "{{ mariadb_root_password }}"
check_implicit_admin: true
login_unix_socket: /var/lib/mysql/mysql.sock
no_log: true
when: mariadb_root_password is defined
- name: create root .my.cnf
template:
dest: /root/.my.cnf
src: my.cnf.j2
mode: 0600
owner: root
group: "{{ ansible_wheel }}"
when: mariadb_root_password is defined
- name: import sftpuser role
import_role:
name: sftpuser
vars:
chroot: /srv/backup
user: backup
publickeys: "{{ backup_publickeys }}"
- name: create backup directory
file:
path: /export/backup
state: directory
mode: 02750
owner: root
group: backup
- name: link backup directory
file:
path: /srv/backup
src: /export/backup
state: link
owner: root
group: "{{ ansible_wheel }}"
follow: false
- name: copy backup script
copy:
dest: /usr/local/sbin/mariadb-backup
src: mariadb-backup.sh
mode: 0755
owner: root
group: "{{ ansible_wheel }}"
- name: create backup cron job
cron:
name: mariadb-backup
job: /usr/local/sbin/mariadb-backup
hour: "0"
minute: "30"