2025-06-16 23:21:13 +00:00

109 lines
2.9 KiB
YAML

---
- name: "Gather service facts"
ansible.builtin.service_facts:
# ------------------ MariaDB Specific Tasks ------------------
- name: "Install MariaDB server"
ansible.builtin.apt:
name: mariadb-server
state: present
update_cache: yes
when: db_engine == 'mariadb'
- name: "Ensure MariaDB service is running and enabled (when selected)"
ansible.builtin.service:
name: mariadb
state: started
enabled: yes
when: db_engine == 'mariadb'
- name: "Ensure MariaDB service is stopped and disabled (when NOT selected)"
ansible.builtin.service:
name: mariadb
state: stopped
enabled: no
when:
- db_engine != 'mariadb'
- "'mariadb' in ansible_facts.services"
# ------------------ MySQL Specific Tasks ------------------
- name: "Install MySQL server"
ansible.builtin.apt:
name: mysql-server
state: present
update_cache: yes
when: db_engine == 'mysql'
- name: "Ensure MySQL service is running and enabled (when selected)"
ansible.builtin.service:
name: mysql
state: started
enabled: yes
when: db_engine == 'mysql'
- name: "Ensure MySQL service is stopped and disabled (when NOT selected)"
ansible.builtin.service:
name: mysql
state: stopped
enabled: no
when:
- db_engine != 'mysql'
- "'mysql' in ansible_facts.services"
# ------------------ PostgreSQL Specific Tasks ------------------
- name: "Install PostgreSQL server and dependencies"
ansible.builtin.apt:
name:
- postgresql
- postgresql-contrib
- python3-psycopg2
state: present
update_cache: yes
when: db_engine == 'postgres'
- name: "Ensure PostgreSQL service is running and enabled (when selected)"
ansible.builtin.service:
name: postgresql
state: started
enabled: yes
when: db_engine == 'postgres'
- name: "Ensure PostgreSQL service is stopped and disabled (when NOT selected)"
ansible.builtin.service:
name: postgresql
state: stopped
enabled: no
when:
- db_engine != 'postgres'
- "'postgresql' in ansible_facts.services"
- name: "Create the global Lenvi PostgreSQL user"
community.postgresql.postgresql_user:
name: "{{ db_credentials.user }}"
password: "{{ db_credentials.password }}"
priv: "ALL"
state: present
become: yes
become_user: postgres
when: db_engine == 'postgres' and db_credentials is defined
# --- Common Tasks for MySQL/MariaDB ---
- name: "Install Python dependencies for MySQL/MariaDB management"
ansible.builtin.apt:
name: python3-pymysql
state: present
when: db_engine == 'mariadb' or db_engine == 'mysql'
- name: "Create the global Lenvi database user"
community.mysql.mysql_user:
name: "{{ db_credentials.user }}"
password: "{{ db_credentials.password }}"
priv: "*.*:ALL,GRANT"
host: "%"
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
when: (db_engine == 'mariadb' or db_engine == 'mysql') and db_credentials is defined