Como usar o saltstack para gerenciar diferentes arquivos de configuração para diferentes minions?

3

Eu tenho dois minions com o servidor httpd gerenciado sob o palheiro. VirtualHost com base nas portas precisa ser configurado para elas separadamente. Então, /etc/httpd/conf.d/httpd-vhost.conf é assistido assim:

httpd:
  pkg.installed: []
  service.running:
    - require:
      - pkg: httpd
    - watch:
      - file: /etc/httpd/conf.d/httpd-vhosts.conf

/etc/httpd/conf.d/httpd-vhosts.conf:
  file.managed:
    - source: salt://webserver/httpd-vhosts.conf

O problema é que os dois minions têm seu próprio nome de servidor e httpd-vhost.conf deve ser diferente, como ServerName www.example1.com e www.example2.com . Saltstack grains module apenas trabalha para arquivo .sls arquivo não gerenciado. Então, algum conselho para que funcione?

    
por seanlook 19.03.2015 / 18:37

2 respostas

7

Basta adicionar - template: jinja ao seu file.managed e você pode usar grãos nos arquivos de configuração.

/etc/httpd/conf.d/httpd-vhosts.conf:
  file.managed:
    - source: salt://webserver/httpd-vhosts.conf
    - template: jinja

Você pode usar grãos no arquivo originado da seguinte forma:

{% if grains['id'] == 'dev' -%}
ServerName dev.example.com
{% else %}
ServerName example.com
{% endif -%}

É exatamente esse recurso que me vendeu no SaltStack.

    
por 20.03.2015 / 15:19
1

Você pode criar arquivos de estado para cada servidor em que a única diferença é a linha de origem. Claro que cada fonte tem a configuração correta. Em seguida, em top.sls, você especifica o arquivo de estado correto para cada um dos servidores da Web.

    
por 19.03.2015 / 22:14

Tags