diff --git a/defaults/main.yml b/defaults/main.yml index 61f80be..2d60a9c 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -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 \ No newline at end of file + quota_failure: hard diff --git a/tasks/configure_mysql_database.yml b/tasks/configure_mysql_database.yml index 52f3e9d..c3cff81 100644 --- a/tasks/configure_mysql_database.yml +++ b/tasks/configure_mysql_database.yml @@ -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'