Skip to content
Snippets Groups Projects
database.sls 1.28 KiB
Newer Older
  • Learn to ignore specific revisions
  • {% from "mysql/defaults.yaml" import rawmap with context %}
    
    {%- set mysql = salt['grains.filter_by'](rawmap, grain='os', merge=salt['pillar.get']('mysql:lookup')) %}
    
    {% set mysql_root_pass = salt['pillar.get']('mysql:server:root_password', salt['grains.get']('server_id')) %}
    
    {% for database in salt['pillar.get']('mysql:database', []) %}
    
    {% set state_id = 'mysql_db_' ~ loop.index0 %}
    {{ state_id }}:
    
        - host: localhost
        - connection_user: root
    
        - connection_pass: '{{ mysql_root_pass }}'
    
    {% if salt['pillar.get'](['mysql', 'schema', database, 'load']|join(':'), False) %}
    {{ state_id }}_schema:
      file.managed:
        - name: /etc/mysql/{{ database }}.schema
        - source: {{ salt['pillar.get'](['mysql', 'schema', database, 'source']|join(':')) }}
        - user: {{ salt['pillar.get']('mysql:server:user', 'mysql') }}
    
        - makedirs: True
    
    
    {{ state_id }}_load:
      cmd.wait:
        - name: mysql -u root -p{{ mysql_root_pass }} {{ database }} < /etc/mysql/{{ database }}.schema
        - watch:
          - file: {{ state_id }}_schema
          - mysql_database: {{ state_id }}
    {% endif %}
    
    
    {% do db_states.append(state_id) %}
    {% endfor %}