SaltStack - Asseclas Proxy de Sal

Existem muitos dispositivos, como roteador, equipamento de rede, etc., com sistema operacional personalizado, memória limitada e considerações de alta segurança. Nesses dispositivos, não foi possível instalar o padrãosalt-minione, posteriormente, foram incapazes de gerenciar esses sistemas. No entanto, Salt fornece uma tecnologia inovadora para superar essa limitação.

Salt tem um módulo separado, salt proxy minion que controla o sistema remoto usando o serviço REST em execução no sistema remoto. Este serviço REST é um serviço da web baseado em HTTP escrito usando oRepresentational State Transfer (REST) conceito e são fáceis de implementar e de consumir.

Cada dispositivo terá seu próprio SDK e ambiente de desenvolvimento para escrever aplicativos complexos. Salt espera que um serviço REST seja desenvolvido no dispositivo de acordo com a especificação da interface Salt. O Salt também fornece um módulo python para escrever o serviço da web REST. Se o dispositivo suportar python, será fácil desenvolver o serviço da web REST.

Depois que o serviço da Web REST é desenvolvido e implantado no sistema remoto, o Salt pode ser configurado para controlar o dispositivo remoto usando o serviço da Web REST em vez do minion de sal.

Exemplo de Trabalho

Vamos aprender o conceito de salt proxy minionusando um ambiente de trabalho ativo. Para o ambiente ao vivo, escolhemos um sistema Linux para o mestre e o proxy minion. Vamos controlar o sistema usando o serviço da Web REST em vez do minion de sal.

Instalar e configurar o serviço da Web REST

Salt fornece uma amostra da implementação do serviço da web REST, que é nomeada como proxyminion_rest_example em seu módulo contrib. Vamos instalar o serviço da web de amostra.

  • Instalar ‘bottle’usando o pip. obottle comando é uma estrutura da web python para desenvolver aplicativos da web.

pip install bottle = 0.12.8
  • Faça o download do saltstack/salt-contribprojeto do github. Caso contrário, clone o projeto usando o seguinte comando.

git clone https://github.com/saltstack/salt-contrib
  • Abra um terminal e vá para o salt-contrib diretório.

  • Este diretório salt-contrib terá uma pasta, proxyminion_rest_example. Esta pasta contém implementação de amostra para o serviço da web REST. Vá para a pasta proxyminion_rest_example.

  • Execute o seguinte comando para iniciar o serviço da web REST.

python rest.py --address <your ip address> --port 8000
  • Abra um navegador e carregue http: // «seu endereço IP»: 8000. Isso mostrará a página padrão com serviços e pacotes, conforme mostrado na imagem abaixo.

Agora, configuramos o serviço da web REST e ele verificará como configurar o proxy salt para consultar o serviço da web REST e controlar o sistema.

Configurar Salt-Proxy

Para configurar o Salt-Proxy, temos que seguir os passos abaixo.

  • Temos que especificar o nó mestre para o salt-proxy. Edite o local do arquivo de configuração de proxy, que está em / etc / salt / proxy, e insira o código a seguir.

master: <your ip address>
  • Modificar / criar arquivo de pilar de base em /srv/pillar/top.sls conforme mostrado no seguinte bloco de código.

base:
  'p8000':
      - p8000
  • Adicione um novo arquivo pilar, p8000.sls no /srv/pillar conforme mostrado no bloco de código abaixo.

proxy:
   proxytype: rest_sample
   url: http://<your ip address>:8000
  • Inicie o salt-proxy no modo de depuração usando o seguinte comando.

salt-proxy --proxyid = p8000 -l debug
  • Semelhante ao minion de sal, aceite o salt-proxy key como mostrado abaixo.

salt-key -y -a p8000

The following keys are going to be accepted:
Unaccepted Keys:
p8000
Key for minion p8000 accepted.

Correndo o Sal

Agora, execute o salt comandar e chamar o ping.test função conforme mostrado abaixo.

salt p8000 test.ping

Podemos executar qualquer função compatível com o serviço da web REST usando salt, que é semelhante a salt-minion.

Por exemplo, as informações do grão podem ser obtidas usando o seguinte comando.

salt p8000 grains.items