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}/tcp

Maintenant, 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-all

Après avoir exécuté la commande, les ports 4505 et 4506 sont ajoutés à firewalld.

configuration 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.pub

Té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

ajouter dépôt

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 makecache

En supposant que la commande réussisse, la sortie que vous recevez devrait être similaire à ce qui suit :

recharger dépôt

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

installer 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/master

Changez 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: master

Lorsque 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-master

Enfin, vérifiez le service salt-master pour vous assurer que le service fonctionne en exécutant la commande ci-dessous.

sudo systemctl status salt-master

Aprè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.

vérifier salt-master

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

installer 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/minion

Dans l’option master, saisissez l’adresse IP du Maître Salt.

master: 192.168.5.50

Saisissez 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: minion1

Enregistrez 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-minion

Une fois le service salt-minion démarré, vérifiez-le en utilisant la commande ci-dessous.

sudo systemctl status salt-minion

Si tout se passe bien, la sortie sera active (en cours d’exécution), ce qui confirme que le service salt-minion fonctionne.

vérifier salt-minion

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-all

Ici, les empreintes des serveurs Minion Salt minion1 et minion2, qui sont toujours en statut ‘Clés non acceptées‘.

liste des clés

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 minion2

Tapez 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‘.

accepter les clés

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-all

Ici, 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.version

Si 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.

test salt

De plus, vous pouvez spécifier le minion cible en utilisant la commande salt comme ceci.

salt minion1 test.ping

Utilisation 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_db

Vous pouvez également vérifier la liste des mises à jour de paquets disponibles en utilisant l’argument pkg.list_upgrades ci-dessous.

salt '*' pkg.list_upgrades

Pour installer un paquet spécifique, utilisez le pkg.install suivant.

salt '*' pkg.install vim

pkg install

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

vérifier le service

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.execs

Cré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'

activer le module de dépôt via salt

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.sls

Insé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: True

Enregistrez 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 lemp

Après l’exécution de la commande, vous devriez obtenir la configuration détaillée comme suit.

vérifier l'état salt

Exécutez maintenant la commande suivante pour appliquer l’état lemp aux serveurs Minion.

sudo salt '*' state.apply lemp

Vous 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.

appliquer l'état salt

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

chaque service en cours d'exécution

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.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.