Automazione IT · 9 min read · Oct 26, 2025

Iniziare con il Framework di Automazione IT Salt su AlmaLinux 9

Salt o Saltstack è un framework di automazione IT open-source che consente agli amministratori di eseguire comandi da remoto su più macchine direttamente. Salt è principalmente scritto in Python e progettato utilizzando un’architettura Master e Minion. Il master di SaltStack è il controller centrale della gestione della configurazione di Salt, e i Minion sono i server gestiti dal Master di SaltStack, o puoi chiamare i minion come server target.

Il master di SaltStack gira su Linux OS per impostazione predefinita, ma i minion possono essere utilizzati su qualsiasi sistema operativo. Saltstack è una gestione della configurazione rivoluzionaria per il deployment di automazione, l’esecuzione di task remoti e l’infrastruttura come codice. SaltStack può anche essere utilizzato per fornire più server di infrastruttura, inclusi server fisici e virtuali, e anche il cloud.

Questo tutorial ti mostrerà come installare Salt sui server AlmaLinux 9. Imparerai anche l’uso di base dei moduli Salt e creerai il tuo primo progetto di stato Salt. In questo caso, creerai un progetto di stato Salt per installare il LEMP Stack.

Requisiti

Per iniziare con questa guida, assicurati di avere i seguenti:

  • 3 server AlmaLinux 9.
  • Un utente non root con privilegi di amministratore sudo.
  • Un SELinux con stato Permissivo o Disabilitato.

Configurazione di Firewalld sul Master di Salt

Prima di installare Salt, devi aprire le porte 4505 e 4506 sul server Master di Salt, che saranno utilizzate dai Minion di Salt per connettersi al Master di Salt. Per ottenere questo, utilizzerai Firewalld.

Esegui il seguente comando per aprire le porte 4505 e 4506 per il server Master di Salt.

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

Ora ricarica il firewalld per applicare le modifiche, quindi verifica l’elenco delle porte aperte su firewalld utilizzando il comando qui sotto.

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

Dopo aver eseguito il comando, le porte 4505 e 4506 sono state aggiunte a firewalld.

setup firewalld

Aggiunta del Repository di Salt

I pacchetti Salt sono disponibili nel repository ufficiale di Salt. Ora, aggiungerai il repository Salt a tutti i tuoi server AlmaLinux, sia Master di Salt che Minion.

Esegui il comando qui sotto per importare la chiave GPG di Salt.

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

Ora scarica il repository Salt sui tuoi sistemi utilizzando il comando qui sotto.

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

add repo

Una volta aggiunta la chiave GPG di Salt e il repository, esegui il comando dnf qui sotto per verificare l’elenco dei repository disponibili sui tuoi sistemi e scaricare i metadati per tutti i repository disponibili.

sudo dnf repolist  
sudo dnf makecache

Assumendo che il comando abbia avuto successo, l’output che ricevi dovrebbe essere simile al seguente:

reload repo

Installazione e Configurazione del Master di Salt

Dopo aver aggiunto il repository di Salt, installerai e configurerai il pacchetto salt-master sul server Master di Salt principale.

Installa il pacchetto salt-master utilizzando il comando dnf qui sotto. Inserisci y quando richiesto per procedere con l’installazione.

sudo dnf install salt-master

install salt-master

Una volta completata l’installazione, apri la configurazione predefinita di Salt /etc/salt/master utilizzando il seguente comando dell’editor nano.

sudo nano /etc/salt/master

Cambia l’opzione dell’interfaccia predefinita con il tuo indirizzo IP locale e l’opzione ID con il nome host del tuo server. In questo caso, il server Master di Salt è configurato con l’indirizzo IP locale 192.168.5.50 e il nome host master.

interface: 192.168.5.50  
id: master

Quando hai finito, salva e chiudi il file.

Successivamente, esegui il seguente comando systemctl per avviare e abilitare il servizio salt-master.

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

Infine, verifica il servizio salt-master per assicurarti che il servizio sia in esecuzione eseguendo il comando qui sotto.

sudo systemctl status salt-master

In caso di operazione riuscita, l’output visualizzato dovrebbe essere active (running), il che indica che il servizio salt-master è in esecuzione.

check salt-master

Installazione e Configurazione del Minion di Salt

Dopo aver configurato il Master di Salt, il passo successivo è installare salt-minion e configurare i server Minion per connettersi al Master di Salt.

Esegui il comando dnf qui sotto per installare il pacchetto salt-minion sui tuoi server Minion. Digita y per confermare l’installazione.

sudo dnf install salt-minion

install salt-minion

Dopo l’installazione, apri la configurazione predefinita di Salt /etc/salt/minion utilizzando il seguente comando dell’editor nano.

sudo nano /etc/salt/minion

All’interno dell’opzione master, inserisci l’indirizzo IP del Master di Salt.

master: 192.168.5.50

Inserisci l’indirizzo IP locale del minion nell’opzione dell’interfaccia e inserisci il nome host del server nell’opzione id.

interface: 192.168.5.20  
id: minion1

Salva il file ed esci dall’editor quando hai finito.

Successivamente, esegui il comando systemctl qui sotto per avviare e abilitare il servizio salt-minion.

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

Una volta avviato il servizio salt-minion, verifica utilizzando il comando qui sotto.

sudo systemctl status salt-minion

Se tutto va bene, l’output sarà active (running), il che conferma che il servizio salt-minion è in esecuzione.

check salt-minion

Registrazione dei Minion di Salt al Master di Salt

A questo punto, il servizio salt-minion è in esecuzione. A questo punto, i Minion di Salt inviano una richiesta per registrarsi al Master di Salt. Per richiedere la registrazione del Minion di Salt, devi accettare la chiave fingerprint sul Master di Salt.

Spostati sul Master di Salt ed esegui il comando salt-key qui sotto per ottenere l’elenco delle chiavi fingerprint.

salt-key --finger-all

Qui ci sono le impronte dei server Minion di Salt minion1 e minion2, che sono ancora nello stato ‘Unaccepted Keys‘.

list keys

Esegui il comando qui sotto per accettare la chiave del Minion di Salt per entrambi i server minion1 e minion2.

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

Inserisci Y quando richiesto per accettare la chiave, e dovresti ricevere un output come ‘Key for minion minion1/2 accepted‘.

accept keys

Ora verifica di nuovo l’elenco delle chiavi fingerprint sul Master di Salt utilizzando il comando qui sotto.

salt-key --finger-all

Qui l’impronta del Minion di Salt per i server minion1 e minion2 è disponibile nella sezione Accepted Keys.

Puoi ora controllare i server Minion di Salt dal Master di Salt tramite la riga di comando di Salt.

Esegui il comando salt qui sotto per verificare la connessione tra il Master di Salt e i Minion e verificare la versione di Salt sui server Minion.

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

Se la connessione è riuscita tra il Master di Salt e il Minion, l’output True verrà visualizzato. Inoltre, puoi vedere che Salt 3006.4 è installato, il che risulta dal parametro test.version.

test salt

Inoltre, puoi specificare il minion target utilizzando il comando salt in questo modo.

salt minion1 test.ping

Uso di Base del Modulo di Stato di Salt

Nella sezione seguente, imparerai come utilizzare il modulo di stato di Salt per gestire i server Minion. Esplorerai alcuni dei moduli di stato di Salt come cmd per eseguire comandi Linux arbitrari, pkg per gestire pacchetti e repository, e il modulo service per gestire i servizi.

Esecuzione di Comandi Arbitrari tramite il Modulo cmd

Esegui il comando qui sotto per eseguire comandi Linux specifici tramite il modulo di stato cmd. In questo esempio, controllerai i dettagli del kernel Linux tramite il comando uname -a.

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

Gestione di Pacchetti e Repository tramite il Modulo pkg

Ora, utilizza il seguente modulo di stato pkg per gestire pacchetti e repository sui tuoi server Minion.

Controlla l’elenco dei repository tramite pkg.list_repos, quindi aggiorna i repository tramite pkg.refresh_db.

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

Puoi anche verificare l’elenco degli aggiornamenti dei pacchetti disponibili utilizzando l’argomento pkg.list_upgrades qui sotto.

salt '*' pkg.list_upgrades

Per installare un pacchetto specifico, utilizza il seguente pkg.install qui sotto.

salt '*' pkg.install vim

pkg install

Gestione dei Servizi tramite il Modulo service

Successivamente, puoi utilizzare il modulo di stato service per gestire i servizi sui tuoi server Minion.

Utilizza l’argomento service.available per assicurarti che il servizio sia disponibile sul server target. Oppure utilizza l’argomento service.enabled per assicurarti che il servizio target sia abilitato, oppure puoi anche utilizzare il service.get_running per assicurarti che il servizio sia in esecuzione.

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

check service

Infine, puoi anche controllare il comando di avvio che viene eseguito da un servizio specifico utilizzando l’argomento service.execs.

salt '*' service.execs

Creazione del Primo Stato Salt

In questa sezione, creerai il primo progetto di stato Salt per installare il LEMP Stack (Nginx, MariaDB e PHP-FPM) sui server Minion target.

Prima di andare oltre, esegui il seguente comando per abilitare il modulo repository che sarà utilizzato per installare pacchetti di versioni specifiche.

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

enable repo module via salt

Ora, crea una nuova directory di configurazione /srv/salt/ che sarà utilizzata per memorizzare il tuo stato Salt.

mkdir -p /srv/salt/

Esegui il comando qui sotto per creare una nuova directory di progetto /srv/salt/lemp e il file init.sls.

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

Inserisci la seguente configurazione nel file. In questo caso, installerai i pacchetti del LEMP Stack sui server Minion tramite il modulo di stato pkg e garantirai che ciascun servizio sia in esecuzione e abilitato utilizzando il modulo di stato service.

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

Salva e chiudi il file quando hai finito.

Successivamente, esegui il comando qui sotto per mostrare i dettagli della configurazione di stato per il progetto lemp.

sudo salt * state.show_sls lemp

Dopo che il comando è stato eseguito, dovresti ottenere la configurazione dettagliata come la seguente.

check salt state

Ora esegui il seguente comando per applicare lo stato lemp ai server Minion.

sudo salt '*' state.apply lemp

Dovresti vedere il report generato dell’installazione automatica. L’installazione dei pacchetti del LEMP Stack su entrambi i server Minion è stata un successo in questo caso.

apply salt state

Di seguito ci sono i dettagli quando i servizi sono in esecuzione e abilitati.

each services running

Conclusione

Per concludere, ora hai installato Salt sui server AlmaLinux 9 passo dopo passo. Hai installato e configurato sia il Master di Salt che i Minion sui server AlmaLinux, e hai anche appreso l’uso di base dei moduli di stato di Salt, e creato il tuo primo progetto di stato Salt per installare il LEMP Stack.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.