computer-playbook/roles/docker-mariadb/tasks/main.yml

72 lines
2.3 KiB
YAML
Raw Normal View History

2023-12-29 22:50:42 +01:00
- name: Create Docker network for MariaDB
docker_network:
2024-01-05 20:22:34 +01:00
name: central_mariadb
2023-12-29 22:50:42 +01:00
state: present
2023-12-29 23:48:44 +01:00
when: run_once_docker_mariadb is not defined
2023-12-29 22:50:42 +01:00
- name: install MariaDB
docker_container:
name: central-mariadb
image: mariadb:latest #could lead to problems with nextcloud
2023-12-29 22:50:42 +01:00
detach: yes
env:
MARIADB_ROOT_PASSWORD: "{{central_mariadb_root_password}}"
MARIADB_AUTO_UPGRADE: "1"
2023-12-29 22:50:42 +01:00
networks:
2024-01-05 20:22:34 +01:00
- name: central_mariadb
volumes:
- central_mariadb_database:/var/lib/mysql
2023-12-29 22:50:42 +01:00
published_ports:
- "127.0.0.1:3306:3306" # can be that this will be removed if all applications use sockets
command: "--transaction-isolation=READ-COMMITTED --binlog-format=ROW" #for nextcloud
restart_policy: "{{docker_restart_policy}}"
2024-01-05 22:00:59 +01:00
healthcheck:
test: "/usr/bin/mariadb --user=root --password={{central_mariadb_root_password}} --execute \"SHOW DATABASES;\""
interval: 3s
timeout: 1s
retries: 5
2023-12-29 23:48:44 +01:00
when: run_once_docker_mariadb is not defined
2024-01-15 01:00:59 +01:00
register: setup_mariadb_container_result
2023-12-29 22:50:42 +01:00
- name: install python-mysqlclient
pacman:
name: python-mysqlclient
state: present
when: run_once_docker_mariadb is not defined
- name: wait for database
2024-01-15 01:00:59 +01:00
pause:
seconds: "{{pause_duration}}"
when: setup_mariadb_container_result.changed and run_once_docker_mariadb is not defined
2024-01-06 14:32:49 +01:00
- name: "Create database: {{ database_name }}"
mysql_db:
2024-01-06 14:32:49 +01:00
name: "{{ database_name }}"
state: present
login_user: root
login_password: "{{ central_mariadb_root_password }}"
login_host: 127.0.0.1
login_port: 3306
2024-04-03 22:08:39 +02:00
- name: Grant database privileges
ansible.builtin.shell:
cmd: "docker exec central-mariadb mariadb -u root -p{{ central_mariadb_root_password }} -e \"GRANT ALL PRIVILEGES ON {{database_name}}.* TO '{{database_username}}'@'%';\""
args:
executable: /bin/bash
2024-01-04 15:07:04 +01:00
- name: "Create database user: {{ database_username }}"
mysql_user:
name: "{{database_username}}"
password: "{{database_password}}"
host: "%"
2024-01-06 14:32:49 +01:00
priv: '{{database_name}}.*:ALL'
state: present
login_user: root
login_password: "{{central_mariadb_root_password}}"
login_host: 127.0.0.1
login_port: 3306
2023-12-29 22:50:42 +01:00
- name: run the docker_mariadb tasks once
set_fact:
2023-12-29 23:48:44 +01:00
run_once_docker_mariadb: true
when: run_once_docker_mariadb is not defined