48 lines
1.4 KiB
Text
48 lines
1.4 KiB
Text
{##ensure that database pillar exists##}
|
|
{%- if pillar['database'] is defined -%}
|
|
{% if pillar['database']['databases'] is defined -%}
|
|
{%- for db in pillar['database']['databases'] %}
|
|
#destroy and create fresh db
|
|
absent_{{db}}:
|
|
mysql_database.absent:
|
|
- name: {{db}}
|
|
- connection_user: salt
|
|
- connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
|
|
present_{{db}}:
|
|
mysql_database.present:
|
|
- name: {{db}}
|
|
- connection_user: salt
|
|
- connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
|
|
|
|
#create temp user w/ perms for db
|
|
{%- set pass=range(0,999999999)|random -%}
|
|
user_temp_{{db}}:
|
|
mysql_user.present:
|
|
- name: temp
|
|
- host: "localhost"
|
|
- password: "{{pass}}"
|
|
- connection_user: salt
|
|
- connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
|
|
grant_temp_{{db}}:
|
|
mysql_grants.present:
|
|
- grant: all privileges
|
|
- database: "{{db}}.*"
|
|
- user: temp
|
|
- host: "localhost"
|
|
- revoke_first: true
|
|
- connection_user: salt
|
|
- connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
|
|
#restore db
|
|
restore_{{db}}:
|
|
cmd.run:
|
|
- name: "mysql -utemp -p{{pass}} < /dbdump/{{db}}.sql"
|
|
#remove temp user
|
|
rm_user_temp_{{db}}:
|
|
mysql_user.absent:
|
|
- name: temp
|
|
- host: "localhost"
|
|
- connection_user: salt
|
|
- connection_pass: "{%- include 'secure/passwords/salt_db_password.txt' -%}"
|
|
{%- endfor %}
|
|
{%- endif %}
|
|
{%- endif %}
|