Automatisation IT · 9 min read · Oct 26, 2025
Commencer avec le cadre d'automatisation IT Salt sur AlmaLinux 9

Salt ou Saltstack est un cadre d’automatisation IT open-source qui permet aux administrateurs d’exécuter des commandes à distance sur plusieurs machines directement. Salt est principalement écrit en Python et conçu selon une architecture Maître et Minion. Le maître SaltStack est le contrôleur central de la gestion de configuration Salt, et les Minions sont des serveurs gérés par le Maître SaltStack, ou vous les nommez Minions comme serveurs cibles.
Le maître SaltStack fonctionne par défaut sur un système d’exploitation Linux, mais les Minions peuvent être utilisés sur n’importe quel système d’exploitation. Saltstack est une gestion de configuration révolutionnaire pour le déploiement d’automatisation, l’exécution de tâches à distance et l’infrastructure en tant que code. SaltStack peut également être utilisé pour provisionner plusieurs serveurs d’infrastructure, y compris des serveurs physiques et virtuels, ainsi que le cloud.
Ce tutoriel vous montrera comment installer Salt sur des serveurs AlmaLinux 9. Vous apprendrez également l’utilisation de base des modules Salt et créerez le premier projet d’état Salt. Dans ce cas, vous créerez un projet d’état Salt pour installer la pile LEMP.
Prérequis
Pour commencer avec ce guide, assurez-vous d’avoir les éléments suivants :
- 3 serveurs AlmaLinux 9.
- Un utilisateur non-root avec des privilèges d’administrateur sudo.
- Un SELinux avec un statut Permissif ou Désactivé.
Configuration de Firewalld sur le Maître Salt
Avant d’installer Salt, vous devez ouvrir les ports 4505 et 4506 sur le serveur Maître Salt, qui seront utilisés par les Minions Salt pour se connecter au Maître Salt. Pour ce faire, vous utiliserez Firewalld.
Exécutez la commande suivante pour ouvrir les ports 4505 et 4506 pour le serveur Maître Salt.
sudo firewall-cmd --zone=public --permanent --add-port={4505,4506}/tcpMaintenant, rechargez le firewalld pour appliquer les modifications, puis vérifiez la liste des ports ouverts sur firewalld en utilisant la commande ci-dessous.
sudo firewall-cmd --reload
sudo firewall-cmd --list-allAprès avoir exécuté la commande, les ports 4505 et 4506 sont ajoutés à firewalld.

Ajout du dépôt Salt
Les paquets Salt sont disponibles sur le dépôt officiel Salt. Maintenant, vous allez ajouter le dépôt Salt à tous vos serveurs AlmaLinux, tant le Maître Salt que les Minions.
Exécutez la commande ci-dessous pour importer la clé GPG Salt.
sudo rpm --import https://repo.saltproject.io/salt/py3/redhat/9/x86_64/SALT-PROJECT-GPG-PUBKEY-2023.pubTéléchargez maintenant le dépôt Salt sur vos systèmes en utilisant la commande ci-dessous.
curl -fsSL https://repo.saltproject.io/salt/py3/redhat/9/x86_64/latest.repo | sudo tee /etc/yum.repos.d/salt.repo
Une fois la clé GPG Salt et le dépôt ajoutés, exécutez la commande dnf ci-dessous pour vérifier la liste des dépôts disponibles sur vos systèmes et télécharger les métadonnées pour tous les dépôts disponibles.
sudo dnf repolist
sudo dnf makecacheEn supposant que la commande réussisse, la sortie que vous recevez devrait être similaire à ce qui suit :

Installation et configuration du Maître Salt
Après avoir ajouté le dépôt Salt, vous allez installer et configurer le paquet salt-master sur le serveur Maître Salt principal.
Installez le paquet salt-master en utilisant la commande dnf ci-dessous. Tapez y lorsque vous y êtes invité pour procéder à l’installation.
sudo dnf install salt-master
Une fois l’installation terminée, ouvrez la configuration par défaut de Salt /etc/salt/master en utilisant la commande de l’éditeur nano suivante.
sudo nano /etc/salt/masterChangez l’option d’interface par défaut avec votre adresse IP locale et l’option ID avec le nom d’hôte de votre serveur. Dans ce cas, le serveur Maître Salt est configuré avec l’adresse IP locale 192.168.5.50 et le nom d’hôte master.
interface: 192.168.5.50
id: masterLorsque vous avez terminé, enregistrez et fermez le fichier.
Ensuite, exécutez la commande systemctl suivante pour démarrer et activer le service salt-master.
sudo systemctl start salt-master
sudo systemctl enable salt-masterEnfin, vérifiez le service salt-master pour vous assurer que le service fonctionne en exécutant la commande ci-dessous.
sudo systemctl status salt-masterAprès un fonctionnement réussi, la sortie affichée devrait être active (en cours d’exécution), ce qui indique que le service salt-master fonctionne.

Installation et configuration du Minion Salt
Après avoir configuré le Maître Salt, l’étape suivante consiste à installer salt-minion et à configurer les serveurs Minion pour se connecter au Maître Salt.
Exécutez la commande dnf ci-dessous pour installer le paquet salt-minion sur vos serveurs Minion. Tapez y pour confirmer l’installation.
sudo dnf install salt-minion
Après l’installation, ouvrez la configuration par défaut de Salt /etc/salt/minion en utilisant la commande de l’éditeur nano ci-dessous.
sudo nano /etc/salt/minionDans l’option master, saisissez l’adresse IP du Maître Salt.
master: 192.168.5.50Saisissez l’adresse IP locale du minion dans l’option interface et entrez le nom d’hôte du serveur dans l’option id.
interface: 192.168.5.20
id: minion1Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.
Ensuite, exécutez la commande systemctl ci-dessous pour démarrer et activer le service salt-minion.
sudo systemctl start salt-minion
sudo systemctl enable salt-minionUne fois le service salt-minion démarré, vérifiez-le en utilisant la commande ci-dessous.
sudo systemctl status salt-minionSi tout se passe bien, la sortie sera active (en cours d’exécution), ce qui confirme que le service salt-minion fonctionne.

Enregistrement des Minions Salt auprès du Maître Salt
À ce stade, le service salt-minion fonctionne. À ce sujet, les Minions Salt envoient une demande pour s’enregistrer auprès du Maître Salt. Pour demander l’enregistrement du Minion Salt, vous devez accepter la clé d’empreinte sur le Maître Salt.
Déplacez-vous vers le Maître Salt et exécutez la commande salt-key ci-dessous pour obtenir la liste des clés d’empreinte.
salt-key --finger-allIci, les empreintes des serveurs Minion Salt minion1 et minion2, qui sont toujours en statut ‘Clés non acceptées‘.

Exécutez la commande ci-dessous pour accepter la clé Minion Salt pour les serveurs minion1 et minion2.
salt-key -a minion1
salt-key -a minion2Tapez Y lorsque vous y êtes invité pour accepter la clé, et vous devriez obtenir une sortie telle que ‘Clé pour le minion minion1/2 acceptée‘.

Vérifiez maintenant la liste des clés d’empreinte sur le Maître Salt à nouveau en utilisant la commande ci-dessous.
salt-key --finger-allIci, l’empreinte du Minion Salt pour les serveurs minion1 et minion2 est disponible dans la section Clés acceptées.
Vous pouvez maintenant contrôler les serveurs Minion Salt depuis le Maître Salt via la ligne de commande Salt.
Exécutez la commande salt ci-dessous pour vérifier la connexion entre le Maître Salt et les Minions et vérifier la version de Salt sur les serveurs Minion.
salt '*' test.ping
salt '*' test.versionSi la connexion est réussie entre le Maître Salt et le Minion, la sortie True sera affichée. De plus, vous pouvez voir que Salt 3006.4 est installé, ce qui résulte du paramètre test.version.

De plus, vous pouvez spécifier le minion cible en utilisant la commande salt comme ceci.
salt minion1 test.pingUtilisation de base du module d’état Salt
Dans la section suivante, vous apprendrez comment utiliser le module d’état Salt pour gérer les serveurs Minion. Vous explorerez certains des modules d’état Salt tels que cmd pour exécuter des commandes Linux arbitraires, pkg pour gérer les paquets et les dépôts, et le module service pour gérer les services.
Exécution de commandes arbitraires via le module cmd
Exécutez la commande ci-dessous pour exécuter des commandes Linux spécifiques via le module d’état cmd. Dans cet exemple, vous allez vérifier les détails du noyau Linux via la commande uname -a.
salt '*' cmd.run 'uname -a'Gestion des paquets et des dépôts via le module pkg
Maintenant, utilisez le module d’état pkg suivant pour gérer les paquets et les dépôts sur vos serveurs Minion.
Vérifiez la liste des dépôts via pkg.list_repos, puis mettez à jour les dépôts via pkg.refresh_db.
salt '*' pkg.list_repos
salt '*' pkg.refresh_dbVous pouvez également vérifier la liste des mises à jour de paquets disponibles en utilisant l’argument pkg.list_upgrades ci-dessous.
salt '*' pkg.list_upgradesPour installer un paquet spécifique, utilisez le pkg.install suivant.
salt '*' pkg.install vim
Gestion des services via le module service
Ensuite, vous pouvez utiliser le module d’état service pour gérer les services sur vos serveurs Minion.
Utilisez l’argument service.available pour vous assurer que le service est disponible sur le serveur cible. Ou utilisez l’argument service.enabled pour vous assurer que le service cible est activé, ou vous pouvez également utiliser le service.get_running pour vous assurer que le service est en cours d’exécution.
salt '*' service.available chronyd
salt '*' service.enabled chronyd
salt '*' service.get_running
Enfin, vous pouvez également vérifier la commande de démarrage qui est exécutée par un service spécifique en utilisant l’argument service.execs.
salt '*' service.execsCréation du premier état Salt
Dans cette section, vous allez créer le premier projet d’état Salt pour installer la pile LEMP (Nginx, MariaDB et PHP-FPM) sur les serveurs Minion cibles.
Avant d’aller plus loin, exécutez la commande suivante pour activer le module de dépôt qui sera utilisé pour installer des paquets de versions spécifiques.
salt '*' cmd.run 'sudo dnf module enable nginx:1.22 -y'
salt '*' cmd.run 'sudo dnf module enable php:8.1 -y'
Maintenant, créez un nouveau répertoire de configuration /srv/salt/ qui sera utilisé pour stocker votre état Salt.
mkdir -p /srv/salt/Exécutez la commande ci-dessous pour créer un nouveau répertoire de projet /srv/salt/lemp et le fichier init.sls.
mkdir -p /srv/salt/lemp
nano /srv/salt/lemp/init.slsInsérez la configuration suivante dans le fichier. Dans ce cas, vous allez installer les paquets de la pile LEMP sur les serveurs Minion via le module d’état pkg et vous assurer que chaque service est en cours d’exécution et activé en utilisant le module d’état 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: TrueEnregistrez et fermez le fichier lorsque vous avez terminé.
Ensuite, exécutez la commande ci-dessous pour afficher les détails de la configuration d’état pour le projet lemp.
sudo salt * state.show_sls lempAprès l’exécution de la commande, vous devriez obtenir la configuration détaillée comme suit.

Exécutez maintenant la commande suivante pour appliquer l’état lemp aux serveurs Minion.
sudo salt '*' state.apply lempVous devriez voir le rapport généré de l’installation automatique. L’installation des paquets de la pile LEMP sur les deux serveurs Minion a été réussie dans ce cas.

Voici les détails lorsque les services sont en cours d’exécution et activés.

Conclusion
Pour conclure, vous avez maintenant installé Salt sur des serveurs AlmaLinux 9 étape par étape. Vous avez installé et configuré à la fois le Maître Salt et les Minions sur les serveurs AlmaLinux, et vous avez également appris l’utilisation de base des modules d’état Salt, et créé votre premier projet d’état Salt pour installer la pile LEMP.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.