{% from 'mariadb/map.jinja' import mariadb %} {% import 'globals.jinja' as globals %} include: - mariadb - systemd.helpers /data/mysql: file.directory: - require: - file: /data /data/backup: file.directory: - require: - file: /data /data/backup/once_off: file.directory: - require: - file: /data/backup /data/backup/daily: file.directory: - require: - file: /data/backup /var/lib/mysql: file.symlink: - target: /data/mysql - require: - file: /data/mysql /root/backup.sh: file.managed: - mode: 700 - source: salt://mariadb/server/files/backup.sh - template: jinja - context: xtrabackup_user: {{ globals.config.mariadb.xtrabackup_user }} xtrabackup_password: {{ globals.config.mariadb.xtrabackup_password }} mariadb_server: pkg.installed: - name: {{ mariadb.server_package }} - require: - pkgrepo: mariadb_repo - file: /var/lib/mysql - pkg: mariadb_client service.running: - name: {{ mariadb.server_service }} - require: - file: mysql_data_final - module: reload_systemd - watch: - file: mariadb_conf - file: mariadb_server_bind_conf - file: mariadb_server_protected_conf # The mysql user probably won't exist when /data/mysql gets created, # so we have to change the permissions after installing the package. mysql_data_final: file.directory: # We need to use a different name to avoid clashing. - name: /data/mysql/. - user: mysql - group: mysql - require: - pkg: mariadb_server - file: /data/mysql mariadb_server_bind_conf: file.managed: - name: /etc/mysql/conf.d/bind.cnf - source: salt://mariadb/server/files/bind.cnf - template: jinja - require: - pkg: mariadb_client mariadb_server_protected_conf: file.managed: - name: /var/lib/mysql/.my.cnf - source: salt://mariadb/server/files/mysql-my.cnf - user: mysql - group: mysql - mode: 600 - template: jinja - context: xtrabackup_user: {{ globals.config.mariadb.xtrabackup_user }} xtrabackup_password: {{ globals.config.mariadb.xtrabackup_password }} - require: - pkg: mariadb_server