137 lines
2.7 KiB
YAML
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"
|