Automação TI · 9 min read · Oct 26, 2025

Introdução ao Framework de Automação de TI Salt no AlmaLinux 9

Salt ou Saltstack é um framework de automação de TI de código aberto que permite que administradores executem comandos remotamente em várias máquinas diretamente. Salt é principalmente escrito em Python e projetado usando a arquitetura Master e Minion. O master do SaltStack é o controlador central da gestão de configuração do Salt, e os Minions são servidores gerenciados pelo Master do SaltStack, ou você nomeou minions como servidores-alvo.

O master do SaltStack roda no sistema operacional Linux por padrão, mas os minions podem ser usados em qualquer sistema operacional. Saltstack é uma gestão de configuração revolucionária para implantação de automação, execução remota de tarefas e infraestrutura como código. SaltStack também pode ser usado para provisionar múltiplos servidores de infraestrutura, incluindo servidores físicos e virtuais, e também na nuvem.

Este tutorial mostrará como instalar o Salt em servidores AlmaLinux 9. Você também aprenderá o uso básico dos módulos Salt e criará o primeiro projeto de estado Salt. Neste caso, você criará um projeto de estado Salt para instalar o LEMP Stack.

Pré-requisitos

Para começar com este guia, certifique-se de ter o seguinte:

  • 3 servidores AlmaLinux 9.
  • Um usuário não-root com privilégios de administrador sudo.
  • Um SELinux com status Permissivo ou Desativado.

Configurando o Firewalld no Master do Salt

Antes de instalar o Salt, você deve abrir as portas 4505 e 4506 no servidor Master do Salt, que serão usadas pelos Minions do Salt para se conectar ao Master do Salt. Para isso, você usará o Firewalld.

Execute o seguinte comando para abrir as portas 4505 e 4506 para o servidor Master do Salt.

sudo firewall-cmd --zone=public --permanent --add-port={4505,4506}/tcp

Agora recarregue o firewalld para aplicar as mudanças, então verifique a lista de portas abertas no firewalld usando o comando abaixo.

sudo firewall-cmd --reload  
sudo firewall-cmd --list-all

Após executar o comando, as portas 4505 e 4506 são adicionadas ao firewalld.

configurar firewalld

Adicionando o Repositório Salt

Os pacotes Salt estão disponíveis no repositório oficial do Salt. Agora, você adicionará o repositório Salt a todos os seus servidores AlmaLinux, tanto o Master do Salt quanto os Minions.

Execute o comando abaixo para importar a chave GPG do Salt.

sudo rpm --import https://repo.saltproject.io/salt/py3/redhat/9/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pub

Agora baixe o repositório Salt para seus sistemas usando o comando abaixo.

curl -fsSL https://repo.saltproject.io/salt/py3/redhat/9/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo

adicionar repositório

Uma vez que a chave GPG do Salt e o repositório foram adicionados, execute o comando dnf abaixo para verificar a lista dos repositórios disponíveis em seus sistemas e baixar os metadados para todos os repositórios disponíveis.

sudo dnf repolist  
sudo dnf makecache

Assumindo que o comando foi bem-sucedido, a saída que você receber deve ser semelhante ao seguinte:

recarregar repositório

Instalando e Configurando o Master do Salt

Após adicionar o repositório Salt, você instalará e configurará o pacote salt-master no servidor Master do Salt.

Instale o pacote salt-master usando o comando dnf abaixo. Digite y quando solicitado para prosseguir com a instalação.

sudo dnf install salt-master

instalar salt-master

Uma vez que a instalação esteja concluída, abra a configuração padrão do Salt /etc/salt/master usando o seguinte comando do editor nano.

sudo nano /etc/salt/master

Altere a opção de interface padrão com seu endereço IP local e a opção ID com o nome do seu servidor. Neste caso, o servidor Master do Salt está configurado com o endereço IP local 192.168.5.50 e o nome do host master.

interface: 192.168.5.50  
id: master

Quando terminar, salve e feche o arquivo.

Em seguida, execute o seguinte comando systemctl para iniciar e habilitar o serviço salt-master.

sudo systemctl start salt-master  
sudo systemctl enable salt-master

Por último, verifique o serviço salt-master para garantir que o serviço está em execução executando o comando abaixo.

sudo systemctl status salt-master

Após a operação bem-sucedida, a saída exibida deve ser ativo (em execução), o que indica que o serviço salt-master está em execução.

verificar salt-master

Instalando e Configurando o Minion do Salt

Após configurar o Master do Salt, o próximo passo é instalar o salt-minion e configurar os servidores Minion para se conectar ao Master do Salt.

Execute o comando dnf abaixo para instalar o pacote salt-minion em seus servidores Minion. Digite y para confirmar a instalação.

sudo dnf install salt-minion

instalar salt-minion

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

sudo nano /etc/salt/minion

Dentro da opção master, insira o endereço IP do Master do Salt.

master: 192.168.5.50

Insira o endereço IP local do minion na opção de interface e insira o nome do servidor na opção id.

interface: 192.168.5.20  
id: minion1

Salve o arquivo e saia do editor quando terminar.

Em seguida, execute o comando systemctl abaixo para iniciar e habilitar o serviço salt-minion.

sudo systemctl start salt-minion  
sudo systemctl enable salt-minion

Uma vez que o serviço salt-minion esteja iniciado, verifique-o usando o comando abaixo.

sudo systemctl status salt-minion

Se tudo correr bem, a saída será ativo (em execução), o que confirma que o serviço salt-minion está em execução.

verificar salt-minion

Registrando Minions do Salt no Master do Salt

Neste ponto, o serviço salt-minion está em execução. Com isso, os Minions do Salt enviam um pedido para se registrar no Master do Salt. Para solicitar o registro do Minion do Salt, você deve aceitar a chave de impressão digital no Master do Salt.

Vá para o Master do Salt e execute o comando salt-key abaixo para obter a lista de chaves de impressão digital.

salt-key --finger-all

Aqui estão as impressões digitais dos servidores Minion do Salt minion1 e minion2, que ainda estão no status ‘Chaves Não Aceitas‘.

listar chaves

Execute o comando abaixo para aceitar a chave do Minion do Salt para ambos os servidores minion1 e minion2.

salt-key -a minion1  
salt-key -a minion2

Digite Y quando solicitado para aceitar a chave, e você deve obter uma saída como ‘Chave para minion minion1/2 aceita‘.

aceitar chaves

Agora verifique a lista de chaves de impressão digital no Master do Salt novamente usando o comando abaixo.

salt-key --finger-all

Aqui a impressão digital do Minion do Salt para os servidores minion1 e minion2 está disponível na seção Chaves Aceitas.

Agora você pode controlar os servidores Minion do Salt a partir do Master do Salt via linha de comando do Salt.

Execute o comando salt abaixo para verificar a conexão entre o Master do Salt e os Minions e verificar a versão do Salt nos servidores Minion.

salt '*' test.ping  
salt '*' test.version

Se a conexão for bem-sucedida entre o Master do Salt e o Minion, a saída True será exibida. Além disso, você pode ver que o Salt 3006.4 está instalado, que é o resultado do parâmetro test.version.

testar salt

Além disso, você pode especificar o minion alvo usando o comando salt assim:

salt minion1 test.ping

Uso Básico do Módulo de Estado do Salt

Na seção a seguir, você aprenderá como usar o módulo de estado do Salt para gerenciar servidores Minion. Você explorará alguns dos módulos de estado do Salt, como cmd para executar comandos Linux arbitrários, pkg para gerenciar pacotes e repositórios, e o módulo de serviço para gerenciar serviços.

Executando Comando Arbitrário via Módulo cmd

Execute o comando abaixo para executar comandos Linux específicos via o módulo de estado cmd. Neste exemplo, você verificará os detalhes do kernel Linux via o comando uname -a.

salt '*' cmd.run 'uname -a'

Gerenciando Pacotes e Repositórios via Módulo pkg

Agora, use o seguinte módulo de estado pkg para gerenciar pacotes e repositórios em seus servidores Minion.

Verifique a lista de repositórios via pkg.list_repos, então atualize os repositórios via pkg.refresh_db.

salt '*' pkg.list_repos  
salt '*' pkg.refresh_db

Você também pode verificar a lista de atualizações de pacotes disponíveis usando o argumento pkg.list_upgrades abaixo.

salt '*' pkg.list_upgrades

Para instalar um pacote específico, use o seguinte pkg.install abaixo.

salt '*' pkg.install vim

pkg install

Gerenciando Serviços via Módulo service

Em seguida, você pode usar o módulo de estado de serviço para gerenciar serviços em seus servidores Minion.

Use o argumento service.available para garantir que o serviço esteja disponível no servidor alvo. Ou use o argumento service.enabled para garantir que o serviço alvo esteja habilitado, ou você também pode usar o service.get_running para garantir que o serviço esteja em execução.

salt '*' service.available chronyd  
salt '*' service.enabled chronyd  
salt '*' service.get_running

verificar serviço

Por último, você também pode verificar o comando de início que é executado por um serviço específico usando o argumento service.execs.

salt '*' service.execs

Criando o Primeiro Estado Salt

Nesta seção, você criará o primeiro projeto de estado Salt para instalar o LEMP Stack (Nginx, MariaDB e PHP-FPM) nos servidores Minion alvo.

Antes de prosseguir, execute o seguinte comando para habilitar o módulo de repositório que será usado para instalar pacotes de versões específicas.

salt '*' cmd.run 'sudo dnf module enable nginx:1.22 -y'  
salt '*' cmd.run 'sudo dnf module enable php:8.1 -y'

habilitar módulo de repositório via salt

Agora, crie um novo diretório de configuração /srv/salt/ que será usado para armazenar seu estado Salt.

mkdir -p /srv/salt/

Execute o comando abaixo para criar um novo diretório de projeto /srv/salt/lemp e o arquivo init.sls.

mkdir -p /srv/salt/lemp  
nano /srv/salt/lemp/init.sls

Insira a seguinte configuração no arquivo. Neste caso, você instalará pacotes do LEMP Stack nos servidores Minion via o módulo de estado pkg e garantirá que cada serviço esteja em execução e habilitado usando o módulo de estado de serviço.

lemp_stack:  
  pkg.installed:  
   - pkgs:  
     - nginx  
     - mariadb-server  
     - php  
     - php-fpm  
  
ginx:  
  service.running:  
    - enable: True  
    - reload: True  
  
mariadb:  
  service.running:  
    - enable: True  
    - reload: True  
  
php-fpm:  
  service.running:  
    - enable: True  
    - reload: True

Salve e feche o arquivo quando terminar.

Em seguida, execute o comando abaixo para mostrar a configuração do estado detalhada para o projeto lemp.

sudo salt * state.show_sls lemp

Após a execução do comando, você deve obter a configuração detalhada como a seguinte.

verificar estado salt

Agora execute o seguinte comando para aplicar o estado lemp aos servidores Minion.

sudo salt '*' state.apply lemp

Você deve ver o relatório gerado da instalação automática. A instalação dos pacotes do LEMP Stack em ambos os servidores Minion foi bem-sucedida neste caso.

aplicar estado salt

Abaixo estão os detalhes quando os serviços estão em execução e habilitados.

cada serviço em execução

Conclusão

Para concluir, você agora instalou o Salt nos servidores AlmaLinux 9 passo a passo. Você instalou e configurou tanto o Master do Salt quanto os Minions nos servidores AlmaLinux, e também aprendeu o uso básico dos módulos de estado do Salt, e criou seu primeiro projeto de estado Salt para instalar o LEMP Stack.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.