| {%- from "salt/map.jinja" import minion with context %} |
| {%- from "linux/map.jinja" import system with context %} |
| |
| {%- if minion.masters is defined %} |
| |
| master: |
| {%- for master in minion.masters %} |
| - {{ master.host }} |
| {%- endfor %} |
| |
| {%- if minion.get('master_type', 'default') == "failover" %} |
| master_type: failover |
| retry_dns: 0 |
| master_shuffle: True |
| master_alive_interval: 60 |
| {%- endif %} |
| |
| {%- else %} |
| |
| master: {{ minion.master.host }} |
| |
| {%- endif %} |
| |
| id: {{ system.name }}.{{ system.domain }} |
| |
| {%- for opt in ['max_event_size', 'acceptance_wait_time_max', |
| 'acceptance_wait_time', 'random_reauth_delay', 'recon_default', 'recon_max', |
| 'recon_randomize', 'auth_timeout'] %} |
| {% if minion.get(opt) %} |
| {{ opt }}: {{ minion.get(opt) }} |
| {%- endif %} |
| {%- endfor %} |
| |
| {%- set excluded_keys = ('master', 'system', 'public_keys', 'private_keys', 'known_hosts', '__reclass__', '_secret', '_param') %} |
| |
| grains: |
| {%- if minion.get('manage_roles', True) %} |
| roles: |
| {%- for key, value in pillar.items() %} |
| {%- if key not in excluded_keys %} |
| {%- for subkey, subvalue in value.iteritems() %} |
| {%- if subvalue.enabled is defined and subvalue.enabled %} |
| - {{key}}.{{ subkey }} |
| {%- endif %} |
| {%- endfor %} |
| {%- endif %} |
| {%- endfor %} |
| {%- endif %} |
| services: |
| {%- for key, value in pillar.items() %} |
| {%- if key not in excluded_keys %} |
| - {{key}} |
| {%- endif %} |
| {%- endfor %} |
| |
| grains_dirs: |
| - /var/lib/salt/grains |
| |
| {%- if minion.mine is defined %} |
| |
| mine_functions: |
| {%- for salt_module, salt_functions in minion.mine.module.iteritems() %} |
| {{ salt_module }}: {{ salt_functions }} |
| {%- endfor %} |
| mine_interval: {{ minion.mine.get('interval', 30) }} |
| |
| {%- endif %} |
| |
| log_level: {{ minion.log.get('level', 'error') }} |
| state_output: {{ minion.log.get('state_output', 'changes') }} |
| |
| {%- if minion.proxy is defined %} |
| proxy_host: {{ minion.proxy.host }} |
| proxy_port: {{ minion.proxy.port }} |
| {%- endif %} |
| |
| {%- if minion.backend is defined %} |
| backend: {{ minion.backend }} |
| {%- endif %} |
| |
| {%- if minion.sentry is defined %} |
| sentry_handler: |
| {% for server in minion.sentry.servers %} |
| servers: |
| - {{ server }} |
| {% endfor %} |
| project: {{ pillar.salt.minion.sentry.project }} |
| public_key: {{ pillar.salt.minion.sentry.public_key }} |
| secret_key: {{ pillar.salt.minion.sentry.secret_key }} |
| {% if pillar.salt.minion.sentry.log_level is defined %} |
| log_level: {{ pillar.salt.minion.sentry.log_level }} |
| {%- endif %} |
| {%- endif %} |
| |
| {%- if pillar.get('galera', {}).get('master', {}).get('enabled', False) %} |
| |
| {%- from "galera/map.jinja" import master with context %} |
| mysql.unix_socket: {{ master.socket }} |
| mysql.user: '{{ pillar.galera.master.admin.user }}' |
| mysql.pass: '{{ pillar.galera.master.admin.password }}' |
| mysql.db: 'mysql' |
| mysql.charset: 'utf8' |
| |
| {%- elif pillar.get('galera', {}).get('slave', {}).get('enabled', False) %} |
| |
| {%- from "galera/map.jinja" import slave with context %} |
| mysql.unix_socket: {{ slave.socket }} |
| mysql.user: '{{ pillar.galera.slave.admin.user }}' |
| mysql.pass: '{{ pillar.galera.slave.admin.password }}' |
| mysql.db: 'mysql' |
| mysql.charset: 'utf8' |
| |
| {%- elif pillar.get('mysql', {}).get('server', {}).get('enabled', False) %} |
| |
| mysql.unix_socket: /var/run/mysqld/mysqld.sock |
| {%- if pillar.mysql.server.admin is defined %} |
| mysql.user: '{{ pillar.mysql.server.admin.user }}' |
| mysql.pass: '{{ pillar.mysql.server.admin.password }}' |
| {%- else %} |
| mysql.user: 'root' |
| mysql.pass: '' |
| {%- endif %} |
| mysql.db: 'mysql' |
| mysql.charset: 'utf8' |
| |
| {%- endif %} |
| |
| {%- if pillar.get('mongodb', {}).server is defined %} |
| mongodb.host: 'localhost' |
| mongodb.port: {{ pillar.mongodb.server.bind.port }} |
| mongodb.user: '{{ pillar.mongodb.server.admin.user }}' |
| mongodb.password: '{{ pillar.mongodb.server.admin.password }}' |
| {%- endif %} |
| |
| {%- if pillar.get('postgresql', {}).server is defined %} |
| postgres.user: 'postgres' |
| postgres.pass: '' |
| postgres.db: 'template1' |
| {%- endif %} |
| |
| {%- if pillar.get('gitlab', {}).client is defined %} |
| gitlab.url: 'https://{{ pillar.gitlab.client.server.host }}/' |
| gitlab.token: '{{ pillar.gitlab.client.server.token }}' |
| {%- elif pillar.get('gitlab', {}).server is defined %} |
| gitlab.url: 'https://{{ pillar.gitlab.server.server_name }}/' |
| gitlab.token: '{{ pillar.gitlab.server.get('token', 'Set token in pillar') }}' |
| {%- endif %} |
| |
| {%- if pillar.get('keystone', {}).get('server', {'enabled': False } ).enabled %} |
| keystone.token: '{{ pillar.keystone.server.service_token }}' |
| keystone.endpoint: 'http://{{ pillar.keystone.server.bind.private_address }}:{{ pillar.keystone.server.bind.private_port }}/v2.0' |
| {%- endif %} |
| |
| {%- for handler in pillar.salt.minion.get("handlers", []) %} |
| |
| {%- if handler.engine == "udp"%} |
| logstash_udp_handler: |
| host: {{ handler.host }} |
| port: {{ handler.port }} |
| version: 1 |
| {%- endif %} |
| |
| {%- if handler.engine == "zmq"%} |
| logstash_zmq_handler: |
| address: tcp://{{ handler.host }}:{{ handler.port }} |
| version: 1 |
| {%- endif %} |
| |
| {%- endfor %} |
| |
| {#- |
| vim: syntax=jinja |
| -#} |