Skip to content
Snippets Groups Projects
Select Git revision
  • 600e3dfbfb952d6d0eda293163cea2096378aa05
  • master default protected
  • pymilter-1.0.4
  • pymilter-1.0.3
  • pymilter-1.0.2
  • pymilter-1.0.1
  • pymilter-1_0
  • milter-0_8_18
  • pymilter-0_9_8
  • pymilter-0_9_7
  • pymilter-0_9_6
  • pymilter-0_9_5
  • pymilter-0_9_4
  • pymilter-0_9_2
  • pymilter-0_9_1
  • pymilter-0_9_0
  • pymilter-0_8_12
  • pymilter-0_8_11
  • pymilter-0_8_10
  • pymilter-0_8_9
  • milter-0_8_8
  • milter-0_8_7
22 results

spfmilter.py

Blame
  • user.sls 1.94 KiB
    {% from "mysql/defaults.yaml" import rawmap with context %}
    {%- set mysql = salt['grains.filter_by'](rawmap, grain='os', merge=salt['pillar.get']('mysql:server:lookup')) %}
    {%- set mysql_root_pass = salt['pillar.get']('mysql:server:root_password', 'somepass') %}
    
    {% set user_states = [] %}
    {% set user_hosts = [] %}
    
    include:
      - mysql.python
    
    {% for name, user in salt['pillar.get']('mysql:user', {}).items() %}
    
    {% set user_host = salt['pillar.get']('mysql:user:%s:host'|format(name)) %}
    {% if user_host != '' %}
      {% set user_hosts = [user_host] %}
    {% else %}
      {% set user_hosts = salt['pillar.get']('mysql:user:%s:hosts'|format(name)) %}
    {% endif %}
    
    {% for host in user_hosts %}
    
    {% set state_id = 'mysql_user_' ~ name ~ '_' ~ host%}
    {{ state_id }}:
      mysql_user.present:
        - name: {{ name }}
        - host: '{{ host }}'
      {%- if user['password_hash'] is defined %}
        - password_hash: '{{ user['password_hash'] }}'
      {%- elif user['password'] is defined and user['password'] != None %}
        - password: '{{ user['password'] }}'
      {%- else %}
        - allow_passwordless: True
      {%- endif %}
        - connection_host: localhost
        - connection_user: root
        {% if mysql_root_pass %}
        - connection_pass: '{{ mysql_root_pass }}'
        {% endif %}
        - connection_charset: utf8
    
    {% for db in user['databases'] %}
    {{ state_id ~ '_' ~ loop.index0 }}:
      mysql_grants.present:
        - name: {{ name ~ '_' ~ db['database']  ~ '_' ~ db['table'] | default('all') }}
        - grant: {{db['grants']|join(",")}}
        - database: '{{ db['database'] }}.{{ db['table'] | default('*') }}'
        - grant_option: {{ db['grant_option'] | default(False) }}
        - user: {{ name }}
        - host: '{{ host }}'
        - connection_host: localhost
        - connection_user: root
        {% if mysql_root_pass -%}
        - connection_pass: '{{ mysql_root_pass }}'
        {% endif %}
        - connection_charset: utf8
        - require:
          - mysql_user: {{ name }}
    {% endfor %}
    
    {% do user_states.append(state_id) %}
    {% endfor %}
    {% endfor %}