Como usar o Salt Stack com minions todos por trás do NAT (não publicamente acessível, portas padrão sal não abertas)?

5

Os minions do Stack de Sal podem se comunicar com o mestre de sal por trás de NAT / Firewalls, etc., usando portas padrão que seriam abertas como padrão em todos os roteadores NAT de consumidor (e sem que os minions tivessem um registro DNS público ou IP estático)?

Estou trabalhando no meu primeiro tutorial de sal, e é aqui que estou preso.

Eu sou capaz de configurar o iptables no mestre de sal do Ubuntu. Mas eu não tenho controle sobre os roteadores / NAT que os minions vão sentar atrás.

Até agora eu tentei estas configurações:

/ etc / salt / master:

publish_port: 465
ret_port: 443

/ etc / salt / minion:

master_port: 465

Isso não funcionou.

Antecedentes:

Eu tenho um aplicativo personalizado desenvolvido atualmente rodando em cerca de 40 laptops Kubuntu (e mais planejados). A cada poucos meses eu tenho que atualizar o aplicativo. (Muitas vezes isso apenas equivale a substituir um arquivo .jar, que requer permissões de root.) Eu também tenho que executar atualizações do Ubuntu e algumas outras pequenas coisas. Eu tenho feito isso manualmente, um por um, usando o Team Viewer para entrar em cada cliente.

Eu gostaria de melhorar drasticamente esse processo. As duas opções que conheço são:

  1. use túneis ssh reversos e scripts bash. Eu testei isso e funciona. Mas eu não recebo nenhuma reportagem, etc., eu pegaria a Pilha de Sal.

  2. use a ferramenta de gerenciamento Salt Stack (ou semelhante). Mas eu preciso de uma ferramenta muito simples. Eu não posso investir tempo em uma grande curva de aprendizado.

Eu olhei para o Puppet e um monte de ferramentas relacionadas. O único que achei que parecia simples o suficiente para mim (até agora) era o Salt Stack. Mas estou preso agora porque meu lacaio não pode alcançar o mestre de sal, como dito acima.

Eu aprecio sugestões.

    
por MountainX 25.06.2013 / 03:47

1 resposta

6

A resposta é "simplesmente funciona". Não há necessidade de alterar os arquivos de configuração (de master ou minion). Não há necessidade de se preocupar com NAT ou firewalls para os minions.

No entanto, no mestre, duas portas precisam ser abertas no firewall. Eu consegui isso com:

iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT

Nos minions, adicione uma entrada para / etc / hosts apontando o nome "salt" para o endereço IP do mestre. Exemplo:

root@minion2:~# cat /etc/hosts
127.0.0.1       localhost.localdomain   localhost
111.222.333.444  salt salt.example.com

Realmente, é muito simples.

    
por 26.06.2013 / 00:44