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}/tcpOra 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-allDopo aver eseguito il comando, le porte 4505 e 4506 sono state aggiunte a 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.pubOra 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
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 makecacheAssumendo che il comando abbia avuto successo, l’output che ricevi dovrebbe essere simile al seguente:

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
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/masterCambia 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: masterQuando 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-masterInfine, verifica il servizio salt-master per assicurarti che il servizio sia in esecuzione eseguendo il comando qui sotto.
sudo systemctl status salt-masterIn caso di operazione riuscita, l’output visualizzato dovrebbe essere active (running), il che indica che il servizio salt-master è in esecuzione.

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
Dopo l’installazione, apri la configurazione predefinita di Salt /etc/salt/minion utilizzando il seguente comando dell’editor nano.
sudo nano /etc/salt/minionAll’interno dell’opzione master, inserisci l’indirizzo IP del Master di Salt.
master: 192.168.5.50Inserisci 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: minion1Salva 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-minionUna volta avviato il servizio salt-minion, verifica utilizzando il comando qui sotto.
sudo systemctl status salt-minionSe tutto va bene, l’output sarà active (running), il che conferma che il servizio salt-minion è in esecuzione.

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-allQui ci sono le impronte dei server Minion di Salt minion1 e minion2, che sono ancora nello stato ‘Unaccepted 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 minion2Inserisci Y quando richiesto per accettare la chiave, e dovresti ricevere un output come ‘Key for minion minion1/2 accepted‘.

Ora verifica di nuovo l’elenco delle chiavi fingerprint sul Master di Salt utilizzando il comando qui sotto.
salt-key --finger-allQui 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.versionSe 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.

Inoltre, puoi specificare il minion target utilizzando il comando salt in questo modo.
salt minion1 test.pingUso 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_dbPuoi anche verificare l’elenco degli aggiornamenti dei pacchetti disponibili utilizzando l’argomento pkg.list_upgrades qui sotto.
salt '*' pkg.list_upgradesPer installare un pacchetto specifico, utilizza il seguente pkg.install qui sotto.
salt '*' pkg.install vim
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
Infine, puoi anche controllare il comando di avvio che viene eseguito da un servizio specifico utilizzando l’argomento service.execs.
salt '*' service.execsCreazione 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'
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.slsInserisci 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: TrueSalva 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 lempDopo che il comando è stato eseguito, dovresti ottenere la configurazione dettagliata come la seguente.

Ora esegui il seguente comando per applicare lo stato lemp ai server Minion.
sudo salt '*' state.apply lempDovresti 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.

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

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.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.