saltstack configuration “Nenhuma correspondência de arquivo superior ou de nós externos encontrada”

1

Uma versão muito semelhante desta pergunta é feita aqui , mas é completamente diferente, já que a pessoa tinha o arquivo principal no diretório errado.

Eu tenho 3 projetos, que chamarei de project1, project2 e project3. Meu objetivo era criar uma configuração master / minion onde meu diretório srv / salt fosse assim:

/srv/salt
        |top.sls
        |/project1
                 |__/postgresql
                         |__init.sls
                         |__config.sql
                 |__/iptables
                         |__init.sls
                         |__config.sh
        |/project2
                 |__/tomcat
                         |__init.sls
                         |__config.sh
                 |__/java
                         |__init.sls
                         |__config.sh
        |/project3
                  |__/serverconfig
                         |__init.sls
                         |__config.sql
                 |__/conky
                         |__init.sls
                         |__config.sh

Para conseguir isso eu editei / etc / salt / master para ler

#/etc/salt/master
file_roots:
  base:
    - /srv/salt
  project1:
    - /srv/salt/project1
  project2:
    - /srv/salt/project2
  project3:
    - /srv/salt/project3

Eu também queria ter nós configurados, já que tenho servidores estáticos envolvidos em cada projeto, e é uma maneira muito intuitiva de organizá-los.

Comecei editando / etc / salt / master para mostrar meus grupos de nós

#/etc/salt/master
nodegroups:
  project1: 'L@project1_server1,project1_server2,project1_server3'
  project2: 'L@project2_server1,project2_server2,project2_server3'
  project3: 'L@project3_server1,project3_server2,project3_server3'

Ao executar a primeira vez que isso foi configurado, tentei aplicar o estado project1 a seus servidores usando o seguinte comando:

salt -N project1 state.highstate

Isso é concluído corretamente para project1_server2, project1_server3, mas falha em project1_server1.

O erro para project1_server1 é "Nenhuma correspondência de arquivo superior ou de nós externos encontrada"

Estou aberto a sugestões de como essa configuração pode ser mais facilmente implementada, mas gostaria de saber o motivo por trás disso não estar funcionando. Obrigado por qualquer ajuda.

EDIT1

adicionando meu arquivo top.sls

#/srv/salt/top.sls
project1:
  project1:
    - match: nodegroup
    - postgresql
    - iptables
project2:
  project2:
    - match: nodegroup
    - tomcat
    - java
project3:
  project3:
    - match: nodegroup
    - serverconfig
    - conky

EDIT2

Saída do sal -N project1 grains.item id

project1_server1:
    ----------
    id:
        project1_server1
project1_server2:
    ----------
    id:
        project1_server2:
project1_server3:
    ----------
    id:
        project1_server3:

EDIT3

A resposta correta foi fornecida por ChrisV

Os erros de sintaxe para o nó em / etc / salt / master foram o problema. Eu precisava mudar isso e, em seguida, reiniciar o mestre de sal

pkill salt-master
salt-master -d
    
por trueCamelType 05.12.2014 / 23:42

1 resposta

2

as definições do grupo de nós devem ser as seguintes:

project1: 'L@project1_server1,project1_server2,project1_server3'

Documentação do Per Salt: Grupos de Nós e Correspondentes compostos

Observe também que é necessário reiniciar o daemon mestre de sal.

    
por 06.12.2014 / 00:43