SaltStack - Salt por SSH

O Salt executa comandos em um sistema remoto usando salt-minion. Este é o comportamento normal. Em alguns cenários, o sistema remoto pode ser acessado apenas pelo protocolo SSH. Para esses cenários, o Salt oferece uma opção para conectar o sistema remoto usando apenas o protocolo SSH e executar o comando por meio da camada SSH.

Salt SSHé muito fácil de configurar. A única configuração necessária é especificar os detalhes do sistema remoto em um arquivo especial chamado deRoster file. Este arquivo de lista normalmente está localizado em/etc/salt/roster. O arquivo de lista terá todas as informações sobre o sistema remoto e como podemos nos conectar a ele. Uma vez que os arquivos de roster são configurados, todos os comandos Salt são executados usando osalt-ssh em vez do comando salt.

Arquivo de lista

O sistema Roster é projetado especificamente para Salt SSH. Isso é projetado como um sistema conectável. O único objetivo do sistema de escala de serviço é reunir informações sobre o sistema remoto. O arquivo de lista é umYAML based configuration file contendo informações do sistema remoto como targets. Esses destinos são uma estrutura de dados especial com um conjunto predefinido de atributos. Um arquivo de lista contém um ou mais alvos e cada alvo é identificado por umSalt ID.

A estrutura básica do arquivo de roster é a seguinte -

<Salt ID>:
   host: <host name>
   user: <user name>
   passwd: <password of the user>

Todos os outros atributos suportados pelo arquivo de lista são opcionais. Eles são os seguintes -

  • port - Número da porta SSH.

  • sudo - se deseja executar o comando via sudo.

  • sudo_user - nome de usuário sudo.

  • tty - verdadeiro se sudo estiver habilitado.

  • priv - chave privada.

  • timeout - tempo limite para uma conexão SSH.

  • minion_opts - dicionário de opções de servos.

  • thin_dir - diretório de armazenamento do sistema de destino para componentes salt.

  • cmd_umask - umask para forçar para o comando salt-call.

O arquivo de lista de amostra é o seguinte -

web:
   host: 192.168.2.1
   user: webuser
   passwd: secret
   sudo: True   
db:
   host: 192.168.2.2

Implantar chaves SSH

Salt SSH irá gerar pares de chave pública / privada padrão para logins SSH. O caminho padrão será /etc/salt/pki/master/ssh/salt-ssh.rsa. Esta chave pode ser implantada no sistema remoto usando ossh-copy-id comando como mostrado abaixo.

ssh-copy-id -i /etc/salt/pki/master/ssh/salt-ssh.rsa.pub [email protected]

Executar Comando

Executar um comando salt é tão simples quanto alterar o salt cli comando em salt-ssh como mostrado abaixo.

salt-ssh '*' test.ping

Comando Raw Shell

Salt SSH fornece uma opção (-r) para executar um comando bruto no sistema remoto, ignorando o módulo salt e funções.

salt-ssh '*' -r 'ls'

Segmentação com Salt SSH

O direcionamento do sistema remoto em Salt SSH suporta apenas destinos glob e regex. Visto que Salt SSH é um módulo separado, ele fornece apenas opções limitadas a partir de agora e fornecerá mais recursos em um futuro próximo.