Pesquisa de site

Como instalar o framework de automação de TI SaltStack no Debian 12


Este tutorial existe para estas versões do sistema operacional

  • Debian 12 (Bookworm)
  • Debian 11 (alvo)

Nesta página

  1. Pré-requisitos
  2. Configurar arquivo /etc/hosts
  3. Adicionando repositório SaltStack
  4. Configurando o UFW
  5. Instalando o Salt Master
  6. Instalando Salt Minion
  7. Adicionando Salt Minion ao Salt Master
  8. Executando comando arbitrário via SaltStack
  9. Criando Salt State para instalação do LAMP Stack
  10. Conclusão

Salt ou Saltstack é uma estrutura de automação de TI de código aberto escrita em Python. Ele permite que os administradores executem comandos remotamente em várias máquinas diretamente.

Salt é projetado com arquitetura Master e Minion. Salt master é o controlador central do gerenciamento de configuração do Salt, e Minions são servidores gerenciados pelo Salt master, ou você nomeou minions como servidores de destino.

Este guia mostrará como instalar o SaltStack em servidores Debian 12. Mostraremos como instalar o Salt Master e o Minion, como executar comandos arbitrários via Salt e, em seguida, criar o primeiro estado Salt para instalar o LAMP Stack.

Pré-requisitos

Antes de começar, certifique-se de ter o seguinte:

  • Dois ou três servidores Debian 12 - Neste exemplo, usaremos o servidor master em 192.168.5.15 e o servidor minion1 em >192.168.5.21.
  • Um usuário não root com privilégios de administrador.

Configurar arquivo /etc/hosts

Nesta seção, você configurará o arquivo /etc/hosts para que cada servidor possa se conectar via nome de host, o que é mais fácil do que usar um endereço IP.

Abra o arquivo /etc/hosts usando o seguinte editor nano.

sudo nano /etc/hosts

Insira os detalhes do host e do endereço IP no arquivo. Certifique-se de alterar os endereços IP e nomes de host com suas informações.

192.168.5.15 master
192.168.5.21 minion1

Salve e saia do arquivo quando terminar.

Adicionando repositório SaltStack

Após configurar o arquivo/etc/hosts, você deve adicionar o repositório SaltStack a todos os seus servidores Debian. O SaltStack fornece um repositório oficial para a maioria das distribuições Linux, incluindo o Debian 12 mais recente.

Primeiro, crie um novo diretório /etc/apt/keyrings usando o comando abaixo.

mkdir /etc/apt/keyrings

Baixe a chave GPG para o repositório SaltStack com o comando abaixo.

sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg

Depois que a chave GPG for baixada, adicione o repositório SaltStack usando o seguinte comando.

echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list

Agora atualize e atualize seu índice de pacotes Debian.

sudo apt update

Você pode ver abaixo o repositório SaltStack adicionado aos servidores Debian.

Configurando o UFW

Neste exemplo, você configurará e ativará o UFW (Firewall Descomplicado) em seus servidores Debian. Então você instalará o UFW, abrirá a porta SSH, iniciará e habilitará o UFW.

Instale o UFW em seu sistema Debian usando o comando abaixo.

sudo apt install ufw -y

Depois que o UFW estiver instalado, execute o seguinte comando para habilitar o perfil do aplicativo OpenSSH. Você verá regras de saída adicionadas.

sudo ufw allow OpenSSH

Agora habilite o UFW usando o comando abaixo. Digite y para confirmar, iniciar e ativar o UFW.

sudo ufw enable

Você receberá uma saída 'Firewall está ativo...' assim que o UFW for iniciado e ativado.

Instalando o Salt Master

Depois de concluir as tarefas acima, você estará pronto para instalar o SaltStack. Você instalará e configurará o Salt Master no servidor master.

No servidor master, execute o comando abaixo para instalar o pacote salt-master. Insira Y para confirmar a instalação.

sudo apt install salt-master

Após a conclusão da instalação, abra a configuração padrão do Salt Master /etc/salt/master usando o comando do editor nano abaixo.

sudo nano /etc/salt/master

Altere a interface padrão com seu endereço IP local. Neste exemplo, o endereço IP do servidor mestre é 192.168.5.15.

interface: 192.168.5.15

Salve o arquivo e saia quando terminar.

Agora execute o comando abaixo para reiniciar o serviço salt-master e aplicar suas alterações.

sudo systemctl restart salt-master

Em seguida, verifique o serviço salt-master para garantir que o serviço esteja em execução.

sudo systemctl status salt-master

Se estiver em execução, você verá uma saída como ativo (em execução).

Em seguida, execute o comando abaixo para abrir as portas TCP 4505 e 4506 que o Salt Master usará.

sudo ufw allow 4505,4506/tcp

Por fim, verifique a lista de portas do seu servidor master usando o comando abaixo. Certifique-se de que o acesso às portas 4505 e 4506 seja permitido.

sudo ufw status

Instalando Salt Minion

Agora que você configurou o Salt Master, prossiga para configurar o Salt Manion no servidor minion1. Você instalará o salt-minion e o configurará para se conectar ao servidor Salt Master.

Instale o pacote salt-minion no servidor minion1 usando o comando abaixo. Insira Y para confirmar a instalação.

sudo apt install salt-minion

Assim que a instalação for concluída, abra a configuração do Salt Minion /etc/salt/minion usando o comando do editor nano.

sudo nano /etc/salt/minion

Insira seu endereço IP Salt Master no parâmetro master como o seguinte:

master: 192.168.5.15

salve o arquivo e saia do editor.

Em seguida, execute o comando abaixo para reiniciar o serviço salt-minion e aplicar suas alterações.

sudo systemctl restart salt-minion

Por último, verifique o serviço salt-minion para garantir que o serviço esteja em execução. O Salt Minion se registrará automaticamente no servidor Salt Master.

sudo systemctl status salt-minion

Certifique-se de que o serviço salt-minion esteja funcionando da seguinte forma:

Adicionando Salt Minion ao Salt Master

Depois de configurar o Salt Minion, você ainda precisa aceitar a chave de registro dos servidores Minion.

Primeiro, execute o comando abaixo para verificar a chave da lista no servidor mestre.

salt-key --finger-all

Se tudo correr bem, você poderá ver a chave do servidor minion1 ou dos servidores Salt Minion.

Agora execute o comando abaixo para aceitar a chave do servidor minion1. Insira Y para confirmar e aceitar a chave.

salt-key -a minion1

Em seguida, verifique novamente a chave da lista no servidor minion1. Você verá a chave do servidor minion1 listada na seção Chaves aceitas.

salt-key --finger-all

Agora você pode testar a conexão com o servidor Salt Minion usando o comando. você pode especificar o servidor de destino com o nome do host ou pode usar o caractere '*' para direcionar todos os servidores Salt Minion disponíveis.

salt minion1 test.ping
salt * test.ping

Se a conexão com o Salt Minion for bem-sucedida, você verá uma saída 'True'.

Por último, verifique a versão do Salt usando o comando abaixo.

salt minion1 test.version

Neste exemplo, o Salt Minion 3007.0 está instalado.

Executando comando arbitrário via SaltStack

Com tudo configurado, você testará a instalação do SaltStack executando o comando arbitrário no servidor minion1 a partir do servidor mestre.

Execute o comando abaixo para atualizar o índice do pacote do repositório para servidores Minion.

salt '*' pkg.refresh_db

Agora execute o comando abaixo para empacotar atualizações no servidor de destino.

salt '*' pkg.list_upgrades

Em seguida, execute o seguinte comando para mostrar informações sobre o pacote apache2.

salt '*' pkg.show apache2

Para verificar os serviços em execução no servidor Minion, execute o comando abaixo.

salt '*' service.get_running
salt '*' service.execs

Criando Salt State para instalação do LAMP Stack

Nesta seção, você aprenderá como criar o primeiro SaltState para instalar LAMP Stack (Apache, MariaDB e PHP) no servidor minion1.

Primeiro, crie um novo diretório /srv/salt/lamp usando o comando abaixo.

mkdir -p /srv/salt/lamp

Agora crie um novo arquivo init do estado Salt /srv/salt/lamp/init.sls usando o seguinte editor nano.

nano /srv/salt/lamp/init.sls

Adicione a configuração abaixo ao arquivo. Com isso, você instalará o LAMP Stack (Apache, MariaDB e PHP) no servidor de destino.

lamp_stack:
 pkg.installed:
 - pkgs:
 - apache2
 - mariadb-server
 - php
 - libapache2-mod-php
apache2:
 service.running:
 - enable: True
 - reload: True
mariadb:
 service.running:
 - enable: True
 - reload: True

Salve o arquivo e saia.

Agora execute o comando abaixo para verificar a configuração do estado Salt em relação ao Salt Minion. Certifique-se de não ter nenhum erro.

sudo salt * state.show_sls lamp

Em seguida, execute o comando abaixo para aplicar a 'lâmpada' do estado Salt ao servidor minion1.

sudo salt minion1 state.apply lamp

Quando o processo for concluído, você obterá a seguinte saída:

Por último, execute o comando abaixo para verificar os serviços Apache e MariaDB no servidor minion1.

salt '*' service.get_running

Certifique-se de que os serviços Apache2 e mariadb estejam em execução.

Conclusão

Parabéns! Você concluiu a instalação do SaltStack (Salt Master e Minion) nos servidores Debian 12. Você também aprendeu como executar o comando arbitrário em servidores Minion e criou o primeiro estado Salt para instalar o LAMP Stack (Apache2, MariaDB e PHP).