Add option to use a remote mysql server

This commit is contained in:
Antonio J. Delgado 2023-02-07 12:25:54 +02:00
parent c791b4eb7a
commit 7fd6806a31
2 changed files with 56 additions and 2 deletions

View file

@ -9,6 +9,8 @@ dbmail_db_port: 3306
dbmail_db_name: dbmail
dbmail_db_user: dbmail
dbmail_db_password: "{{ vault_dbmail_password }}"
dbmail_db_admin_user: root
dbmail_db_admin_password: ''
mail_server_fqdn: mail.example.com
dbmail_domains:
- example.com
@ -104,4 +106,4 @@ dbmail_configuration:
AUTO_NOTIFY: 'no'
AUTO_REPLY: 'no'
suppress_duplicates: 'no'
quota_failure: hard
quota_failure: hard

View file

@ -53,7 +53,25 @@
collation: utf8_general_ci
encoding: utf8
login_unix_socket: /var/run/mysqld/mysqld.sock
when: create_database
when:
- create_database
- dbmail_db_host == 'localhost' or dbmail_db_host == '127.0.0.1'
- name: Create a new database from structure file
mysql_db:
name: "{{ dbmail_db_name }}"
state: import
target: /tmp/create_tables.sql
collation: utf8_general_ci
encoding: utf8
login_user: "{{ dbmail_db_admin_user }}"
login_password: "{{ dbmail_db_admin_password }}"
login_host: "{{ dbmail_db_host }}"
login_port: "{{ dbmail_db_port }}"
when:
- create_database
- dbmail_db_host != 'localhost'
- dbmail_db_host != '127.0.0.1'
- name: Create database user with mail database privileges for remote access
mysql_user:
@ -64,6 +82,24 @@
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
loop: "{{ ansible_play_hosts }}"
when:
- dbmail_db_host == 'localhost' or dbmail_db_host == '127.0.0.1'
- name: Create database user with mail database privileges for remote access
mysql_user:
name: "{{ dbmail_db_user }}"
host: "{{ lookup('dig', item) }}"
password: "{{ dbmail_db_password }}"
priv: "{{ dbmail_db_name }}.*:ALL"
state: present
login_user: "{{ dbmail_db_admin_user }}"
login_password: "{{ dbmail_db_admin_password }}"
login_host: "{{ dbmail_db_host }}"
login_port: "{{ dbmail_db_port }}"
loop: "{{ ansible_play_hosts }}"
when:
- dbmail_db_host != 'localhost'
- dbmail_db_host != '127.0.0.1'
- name: Create database user with mail database privileges for local access
mysql_user:
@ -72,3 +108,19 @@
priv: "{{ dbmail_db_name }}.*:ALL"
state: present
login_unix_socket: /var/run/mysqld/mysqld.sock
when:
- dbmail_db_host == 'localhost' or dbmail_db_host == '127.0.0.1'
- name: Create database user with mail database privileges for local access
mysql_user:
name: "{{ dbmail_db_user }}"
password: "{{ dbmail_db_password }}"
priv: "{{ dbmail_db_name }}.*:ALL"
state: present
login_user: "{{ dbmail_db_admin_user }}"
login_password: "{{ dbmail_db_admin_password }}"
login_host: "{{ dbmail_db_host }}"
login_port: "{{ dbmail_db_port }}"
when:
- dbmail_db_host != 'localhost'
- dbmail_db_host != '127.0.0.1'