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