|
| 1 | +--- |
| 2 | +- name: Create MariaDB volume |
| 3 | + community.docker.docker_volume: |
| 4 | + name: openconext_mariadb |
| 5 | + state: present |
| 6 | + |
| 7 | +- name: Create MariaDB network |
| 8 | + community.docker.docker_network: |
| 9 | + name: openconext_mariadb |
| 10 | + state: present |
| 11 | + internal: false |
| 12 | + ipam_config: |
| 13 | + - subnet: "{{ docker_mariadb_network_range }}" |
| 14 | + |
| 15 | +- name: Create the MariaDB container |
| 16 | + community.docker.docker_container: |
| 17 | + name: openconext_mariadb |
| 18 | + image: mariadb:10.6 |
| 19 | + state: started |
| 20 | + pull: true |
| 21 | + restart_policy: "always" |
| 22 | + ports: "127.0.0.1:3306:3306" |
| 23 | + networks: |
| 24 | + - name: "openconext_mariadb" |
| 25 | + mounts: |
| 26 | + - type: volume |
| 27 | + source: openconext_mariadb |
| 28 | + target: /var/lib/mysql |
| 29 | + env: |
| 30 | + MARIADB_ROOT_PASSWORD: "{{ mariadb_root_password }}" |
| 31 | + |
| 32 | +- name: Create database |
| 33 | + community.mysql.mysql_db: |
| 34 | + name: "{{ item }}" |
| 35 | + state: present |
| 36 | + login_user: root |
| 37 | + login_host: localhost |
| 38 | + login_password: "{{ mariadb_root_password }}" |
| 39 | + with_items: |
| 40 | + - "{{ databases.names }}" |
| 41 | + |
| 42 | +- name: Create database user |
| 43 | + community.mysql.mysql_user: |
| 44 | + name: "{{ item[0].name }}" |
| 45 | + host: "{{ item[1] }}" |
| 46 | + password: "{{ item[0].password }}" |
| 47 | + priv: "{{ item[0].db_name }}.*:{{ item[0].privilege }}" |
| 48 | + state: present |
| 49 | + append_privs: true |
| 50 | + login_user: root |
| 51 | + login_host: localhost |
| 52 | + login_password: "{{ mariadb_root_password }}" |
| 53 | + # no_log: true |
| 54 | + with_nested: |
| 55 | + - "{{ databases.users }}" |
| 56 | + - "{{ database_clients }}" |
| 57 | + |
| 58 | +- name: Add mariadb backup user |
| 59 | + community.mysql.mysql_user: |
| 60 | + name: "{{ mysql_backup_user }}" |
| 61 | + password: "{{ mysql_backup_password }}" |
| 62 | + login_user: root |
| 63 | + login_password: "{{ mariadb_root_password }}" |
| 64 | + login_host: localhost |
| 65 | + priv: "*.*:SELECT,RELOAD,PROCESS,LOCK TABLES,BINLOG MONITOR,CONNECTION ADMIN,SHOW VIEW" |
| 66 | + state: present |
| 67 | + # no_log: true |
| 68 | + |
| 69 | +- name: Create the backup directory |
| 70 | + ansible.builtin.file: |
| 71 | + path: /home/backup |
| 72 | + state: directory |
| 73 | + owner: root |
| 74 | + group: root |
| 75 | + mode: "0700" |
| 76 | + when: |
| 77 | + - backup_node | bool |
| 78 | + |
| 79 | +- name: Put mariadb_backup script |
| 80 | + ansible.builtin.template: |
| 81 | + src: "mariadb_backup.sh.j2" |
| 82 | + dest: "/usr/local/sbin/mariadb_backup.sh" |
| 83 | + mode: "0700" |
| 84 | + owner: root |
| 85 | + when: |
| 86 | + - backup_node | bool |
| 87 | + |
| 88 | +- name: Create cron symlink for backup script |
| 89 | + file: |
| 90 | + src: /usr/local/sbin/mariadb_backup.sh |
| 91 | + dest: /etc/cron.daily/db_backup |
| 92 | + state: link |
| 93 | + mode: 0700 |
| 94 | + owner: root |
| 95 | + when: |
| 96 | + - backup_node | bool |
0 commit comments