{##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 %}