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
- Pré-requisitos
- Configurar arquivo /etc/hosts
- Adicionando repositório SaltStack
- Configurando o UFW
- Instalando o Salt Master
- Instalando Salt Minion
- Adicionando Salt Minion ao Salt Master
- Executando comando arbitrário via SaltStack
- Criando Salt State para instalação do LAMP Stack
- 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).