From 424b85eec854ec521a758e81a2e594b14eb5f282 Mon Sep 17 00:00:00 2001 From: Felix Stupp Date: Fri, 22 May 2020 12:16:26 +0200 Subject: [PATCH] mysql/database: Added database_template function --- roles/mysql/database/defaults/main.yml | 2 ++ roles/mysql/database/tasks/import.yml | 24 ++++++++++++++++++++++++ roles/mysql/database/tasks/main.yml | 5 +++++ 3 files changed, 31 insertions(+) create mode 100644 roles/mysql/database/tasks/import.yml diff --git a/roles/mysql/database/defaults/main.yml b/roles/mysql/database/defaults/main.yml index fe97ae9..9e0ad4f 100644 --- a/roles/mysql/database/defaults/main.yml +++ b/roles/mysql/database/defaults/main.yml @@ -3,3 +3,5 @@ # database_user database_pass: "{{ lookup('password', 'credentials/' + inventory_hostname + '/mysql/' + database_user + ' length=80') }}" database_name: "{{ database_user }}" + +# database_template # Template (content, not path) for database if just created diff --git a/roles/mysql/database/tasks/import.yml b/roles/mysql/database/tasks/import.yml new file mode 100644 index 0000000..6698823 --- /dev/null +++ b/roles/mysql/database/tasks/import.yml @@ -0,0 +1,24 @@ +--- + +- name: Generate temporary filename + tempfile: + state: file + suffix: .sql + register: sql_temp + +- name: Copy SQL template to remote + copy: + content: "{{ database_template }}" + dest: "{{ sql_temp.path }}" + +- name: Import SQL database template on creation + mysql_db: + state: import + name: "{{ database_name }}" + target: "{{ sql_temp.path }}" + login_unix_socket: "/var/run/mysqld/mysqld.sock" + +- name: Remove SQL template from remote + file: + state: absent + path: "{{ sql_temp.path }}" diff --git a/roles/mysql/database/tasks/main.yml b/roles/mysql/database/tasks/main.yml index 3f192bd..8b4e37a 100644 --- a/roles/mysql/database/tasks/main.yml +++ b/roles/mysql/database/tasks/main.yml @@ -16,3 +16,8 @@ mysql_db: db: "{{ database_name }}" login_unix_socket: "/var/run/mysqld/mysqld.sock" + register: create_database + +- name: Import SQL database template on creation + include_tasks: import.yml + when: create_database.changed and database_template is defined