Installation SaltStack · 7 min read · Nov 15, 2025

Comment installer Saltstack Master et Minion sur Debian 11

SaltStack est un logiciel d’automatisation et de gestion de configuration gratuit, open-source et basé sur Python. C’est un outil en ligne de commande qui vous aide à gérer votre infrastructure depuis un emplacement central. SaltStack est composé de quatre composants. Une brève explication de chaque composant est présentée ci-dessous :

  • Salt Master agit comme un contrôleur en ligne de commande pour ses minions. Il est utilisé pour contrôler et gérer un certain nombre de minions.
  • Salt Minions sont des démons esclaves qui reçoivent des configurations et des commandes du maître.
  • Formula est un fichier de gestion de configuration.
  • Execution est un certain nombre de commandes et de modules qui sont exécutés sur les minions.

Dans cet article, je vais vous montrer comment installer les systèmes SaltStack Master et Minion sur Debian 11.

Prérequis

  • Deux serveurs exécutant Debian 11.
  • Un mot de passe root est configuré sur le serveur.

Installer Saltstack Master

Par défaut, SaltStack n’est pas inclus dans le dépôt par défaut de Debian 11. Vous devrez donc ajouter le dépôt SaltStack à APT. Vous pouvez l’ajouter en exécutant la commande suivante :

curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list

Une fois le dépôt ajouté, mettez à jour le cache du dépôt en utilisant la commande suivante :

apt-get update -y

Ensuite, installez les dépendances requises en utilisant la commande suivante :

apt-get install python3 salt-common -y

Ensuite, installez le maître SaltStack avec la commande suivante :

apt-get install salt-master -y

Après l’installation réussie, vous pouvez passer à l’étape suivante.

Configurer Saltstack Master

Ensuite, vous devrez définir l’interface de liaison dans le fichier de configuration SaltStack.

nano /etc/salt/master

Changez la ligne suivante :

interface: 0.0.0.0

Enregistrez et fermez le fichier, puis redémarrez le maître SaltStack avec la commande suivante :

systemctl restart salt-master

Vous pouvez maintenant vérifier l’état de SaltStack avec la commande suivante :

systemctl status salt-master

Vous obtiendrez la sortie suivante :

? salt-master.service - Le serveur Salt Master
     Loaded: loaded (/lib/systemd/system/salt-master.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:39:48 UTC; 9s ago
       Docs: man:salt-master(1)
             file:///usr/share/doc/salt/html/contents.html
             https://docs.saltproject.io/en/latest/contents.html
   Main PID: 19403 (salt-master)
      Tasks: 32 (limit: 2341)
     Memory: 201.5M
        CPU: 6.109s
     CGroup: /system.slice/salt-master.service
             ??19403 /usr/bin/python3 /usr/bin/salt-master
             ??19407 /usr/bin/python3 /usr/bin/salt-master
             ??19431 /usr/bin/python3 /usr/bin/salt-master
             ??19434 /usr/bin/python3 /usr/bin/salt-master
             ??19435 /usr/bin/python3 /usr/bin/salt-master
             ??19436 /usr/bin/python3 /usr/bin/salt-master
             ??19437 /usr/bin/python3 /usr/bin/salt-master
             ??19444 /usr/bin/python3 /usr/bin/salt-master
             ??19445 /usr/bin/python3 /usr/bin/salt-master
             ??19446 /usr/bin/python3 /usr/bin/salt-master
             ??19448 /usr/bin/python3 /usr/bin/salt-master
             ??19451 /usr/bin/python3 /usr/bin/salt-master
             ??19454 /usr/bin/python3 /usr/bin/salt-master

Feb 12 07:39:48 debian11 systemd[1]: Starting Le serveur Salt Master...
Feb 12 07:39:48 debian11 systemd[1]: Démarré Le serveur Salt Master.

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Installer et configurer Saltstack Minion

À ce stade, SaltStack Master est installé et configuré. Maintenant, connectez-vous à une autre machine et ajoutez le dépôt SaltStack Minion avec la commande suivante :

curl -fsSL -o /usr/share/keyrings/salt-archive-keyring.gpg https://repo.saltproject.io/py3/debian/11/amd64/latest/salt-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/salt-archive-keyring.gpg arch=amd64] https://repo.saltproject.io/py3/debian/11/amd64/latest bullseye main" | tee /etc/apt/sources.list.d/salt.list

Une fois le dépôt ajouté, mettez à jour le cache du dépôt en utilisant la commande suivante :

apt-get update -y

Ensuite, installez le Minion SaltStack avec la commande suivante :

apt-get install salt-minion -y

Après l’installation réussie, éditez le fichier de configuration du Minion SaltStack et définissez l’adresse IP du maître.

nano /etc/salt/minion

Changez la ligne suivante :

master: salt-master-ip

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, vous devrez authentifier les minions en utilisant l’empreinte publique du maître.

Sur la machine Salt Master, listez toutes les empreintes en utilisant la commande suivante :

salt-key --finger-all

Vous obtiendrez la sortie suivante :

Local Keys:
master.pem:  b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78
master.pub:  5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1

Maintenant, copiez la ligne de l’empreinte master.pub et ajoutez-la au fichier de configuration du Minion.

Sur la machine Minion, éditez le fichier de configuration :

nano /etc/salt/minion

Ajoutez l’empreinte du maître comme indiqué ci-dessous :

master_finger:  '5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1'

Vous devrez également définir le nom du Minion :

id: Minion1

Enregistrez et fermez le fichier, puis redémarrez le Minion SaltStack en utilisant la commande suivante :

systemctl restart salt-minion

Vous pouvez également vérifier l’état du Minion SaltStack avec la commande suivante :

systemctl status salt-minion

Vous obtiendrez la sortie suivante :

? salt-minion.service - Le Minion Salt
     Loaded: loaded (/lib/systemd/system/salt-minion.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-02-12 07:46:04 UTC; 7s ago
       Docs: man:salt-minion(1)
             file:///usr/share/doc/salt/html/contents.html
             https://docs.saltproject.io/en/latest/contents.html
   Main PID: 2324 (salt-minion)
      Tasks: 8 (limit: 2341)
     Memory: 59.9M
        CPU: 1.185s
     CGroup: /system.slice/salt-minion.service
             ??2324 /usr/bin/python3 /usr/bin/salt-minion
             ??2326 /usr/bin/python3 /usr/bin/salt-minion
             ??2328 /usr/bin/python3 /usr/bin/salt-minion

Feb 12 07:46:04 debian11 systemd[1]: Starting Le Minion Salt...
Feb 12 07:46:04 debian11 systemd[1]: Démarré Le Minion Salt.

Vous pouvez également vérifier l’empreinte du minion en utilisant la commande suivante :

salt-call key.finger --local

Vous obtiendrez la sortie suivante :

local:
    14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27

Sur la machine SaltStack Master, faites correspondre l’empreinte en utilisant la commande suivante :

salt-key --finger-all

Vous obtiendrez la sortie suivante :

Local Keys:
master.pem:  b7:f0:ed:19:bf:e8:e0:9d:c3:9c:a2:09:2c:97:2f:6b:0f:cb:eb:76:3d:d7:d5:a9:7d:0c:3a:60:6e:9f:d7:78
master.pub:  5e:4f:2b:37:41:cc:4b:9c:b0:ed:cb:0a:fb:c7:59:54:5f:11:34:ab:d2:99:96:c1:e7:ef:4d:95:b0:7c:d3:d1
Unaccepted Keys:
Minion1:  14:12:ef:33:d2:1e:49:23:7b:a2:74:8d:19:fc:be:5e:6d:a6:57:ec:4f:a9:da:23:69:3f:62:1b:6b:4b:2f:27

Sur le SaltStack Master, acceptez le Minion en utilisant la commande suivante :

salt-key -a Minion1

Vous obtiendrez la sortie suivante :

Les clés suivantes vont être acceptées :
Unaccepted Keys:
Minion1
Proceed? [n/Y] Y
Clé pour le minion Minion1 acceptée.

Maintenant, vérifiez la connexion entre le Maître et le Minion en utilisant la commande suivante :

salt Minion1 test.ping

Vous obtiendrez la sortie suivante :

Minion1:
    True

Une fois que vous avez terminé, vous pouvez passer à l’étape suivante.

Contrôler les Minions depuis le Maître

Après la connexion réussie entre le Maître et le Minion. Commençons à exécuter quelques commandes sur les Minions.

Exécutez la commande suivante pour lister l’espace disque disponible sur le Minion :

salt '*' disk.usage

Vous obtiendrez la sortie suivante :

Minion1:
    ----------
    /:
        ----------
        1K-blocks:
            51538400
        available:
            47658628
        capacity:
            4%
        filesystem:
            /dev/sda1
        used:
            1661604
    /dev:
        ----------
        1K-blocks:
            998936
        available:
            998936
        capacity:
            0%
        filesystem:
            udev
        used:
            0
    /dev/shm:
        ----------
        1K-blocks:
            1015232
        available:
            1015152
        capacity:
            1%
        filesystem:
            tmpfs
        used:
            80

Pour installer le paquet Apache sur le Minion, exécutez la commande suivante :

salt Minion1 pkg.install apache2

Vous obtiendrez la sortie suivante :

Minion1:
    ----------
    apache2:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    apache2-bin:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    apache2-data:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    apache2-utils:
        ----------
        new:
            2.4.52-1~deb11u2
        old:
    libapr1:
        ----------
        new:
            1.7.0-6+deb11u1
        old:
    libaprutil1:
        ----------
        new:
            1.6.1-5
        old:
    libaprutil1-dbd-sqlite3:
        ----------
        new:
            1.6.1-5
        old:
    libaprutil1-ldap:
        ----------
        new:
            1.6.1-5
        old:

Pour vérifier la mémoire libre sur le Minion, exécutez la commande suivante :

salt '*' cmd.run 'free -m'

Vous obtiendrez la sortie suivante :

Minion1:
                   total        used        free      shared  buff/cache   available
    Mem:            1982         140        1392           2         450        1691
    Swap:              0           0           0

Utiliser le fichier d’état Salt pour gérer les Minions

Les fichiers d’état sont également connus sous le nom de fichiers de gestion de configuration qui sont utilisés pour configurer et gérer les Minions.

Pour créer un fichier d’état, vous devrez créer l’environnement de base pour SaltStack.

mkdir /src/salt

Ensuite, créez un fichier d’état avec la commande suivante :

nano /src/salt/setup.sls

Ajoutez le code suivant pour installer PHP, UNZIP et le paquet Apache sur les Minions :

network_utilities: 
 pkg.installed: 
   - pkgs: 
     - php 
     - unzip 

apache2_pkg: 
 pkg.installed: 
   - name: apache2 

apache2_service: 
 service.running: 
   - name: apache2 
   - enable: True 
   - require: 
     - pkg: apache2_pkg

Enregistrez et fermez le fichier, puis appliquez la configuration à tous les Minions en utilisant la commande suivante :

salt '*' state.apply setup

Vous obtiendrez la sortie suivante :

Minion1:
----------
          ID: network_utilities
    Function: pkg.installed
      Result: True
     Comment: Les paquets suivants ont été installés/mis à jour : php, unzip
     Started: 07:51:22.424504
    Duration: 17349.907 ms
     Changes:   
              ----------
              libapache2-mod-php7.4:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php:
                  ----------
                  new:
                      2:7.4+76
                  old:
              php-common:
                  ----------
                  new:
                      2:76
                  old:
              php7.4:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-cli:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-common:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-json:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-opcache:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              php7.4-readline:
                  ----------
                  new:
                      7.4.25-1+deb11u1
                  old:
              psmisc:
                  ----------
                  new:
                      23.4-2
                  old:
              unzip:
                  ----------
                  new:
                      6.0-26
                  old:
----------
          ID: apache2_pkg
    Function: pkg.installed
        Name: apache2
      Result: True
     Comment: Tous les paquets spécifiés sont déjà installés
     Started: 07:51:39.780956
    Duration: 1029.457 ms
     Changes:   
----------
          ID: apache2_service
    Function: service.running
        Name: apache2
      Result: True
     Comment: Le service apache2 fonctionne déjà
     Started: 07:51:40.812210
    Duration: 35.61 ms
     Changes:   

Résumé pour Minion1
------------
Réussi: 3 (changé=1)
Échoué:    0
------------
Total des états exécutés:     3
Temps total d'exécution:  18.415 s

Conclusion

Félicitations ! vous avez réussi à installer et configurer SaltStack Master et Minion sur le serveur Debian 11. Nous avons également expliqué comment gérer les Minions en utilisant des fichiers d’état et la ligne de commande. J’espère que cela vous aidera à automatiser et gérer votre infrastructure depuis un emplacement central. N’hésitez pas à me poser des questions si vous en avez.

Share: X/Twitter LinkedIn

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

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