Table des matières
Salt (SaltStack): installation de la solution
SaltStack, souvent appelé simplement “Salt”, est une plateforme d'automatisation permettant de gérer et automatiser les configurations de systèmes, les tâches administratives et le déploiement d'applications sur des machines clientes cibles Linux ou Windows.
La sécurisation du serveur salt est critique!
1. Installation du serveur Salt
Pour l'installation sur une Debian, la documentation officielle est : https://docs.saltproject.io/salt/install-guide/en/latest/topics/install-by-operating-system/debian.html
Selon la version on récupère le dépot
Pour Debian 11
mkdir /etc/apt/keyrings sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/11/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/11/amd64/latest bullseye main" | sudo tee /etc/apt/sources.list.d/salt.list
Puis on installe les paquets
sudo apt-get update sudo apt-get install salt-master salt-minion salt-ssh salt-syndic salt-cloud salt-api
On lance les services
sudo systemctl enable salt-master && sudo systemctl start salt-master sudo systemctl enable salt-minion && sudo systemctl start salt-minion sudo systemctl enable salt-syndic && sudo systemctl start salt-syndic sudo systemctl enable salt-api && sudo systemctl start salt-api
Salt-Syndic: Le Salt-Syndic est un Salt-Master intermédiaire. Il agit entre le Salt-Master et les Salt-Minions.
Salt-SSH: Parfois, il peut arriver qu’un Salt-Minion ne puisse pas être exécuté sur un système cible. Via SSH, le Salt-Master peut contacter directement ce système. Toutefois, cela élimine l’échange via ZeroMQ, ce qui peut ralentir considérablement le processus. En outre, certaines fonctions et certains modules peuvent également être omis.
Salt-Proxy Minion: Avec le Salt-Proxy Minion, il est possible de gérer des appareils tiers. Cela inclut, par exemple, les dispositifs de réseau tels que les routeurs ou les commutateurs.
On remarque que sur le serveur on a le salt master ET le salt minion ! Le serveur doit pouvoir gérer des machines distantes. Ces machines doivent avoir un “agent”, le salt-minion, qu'il faut donc installer.
2 -Installation des agents minion
https://docs.saltproject.io/en/latest/ref/clouds/all/salt.cloud.clouds.saltify.html
https://docs.saltproject.io/en/latest/topics/cloud/index.html
Sur les machines Windows
Une fois le fichier d'installation récupéré (ici l'exe) on lance soit en interface graphique soit en ligne de commande (via ghost/ssh/cmd local/etc…)
Salt-Minion-xxxxx-AMD64-Setup.exe /S /master=master-salt.beemoon.fr /minion-name=monminion
pour /minion-name on ne met pas le domaine beemoon.fr
Sur les machines Linux
même principe que pour la partie serveur mais que pour le minion.
Penser au proxy si nécessaire
export http_proxy='http://monproxy.fr:3128' export https_proxy='http://monproxy.fr:3128'
Installer le dépôt du client (comme pour le serveur)
mkdir /etc/apt/keyrings sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/11/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/11/amd64/latest bullseye main" | sudo tee /etc/apt/sources.list.d/salt.list
Installer l'agent minion
apt install salt-minion -y
Editer le fichier de configuration
vi /etc/salt/minion
Changer les paramètres suivants:
master: master-salt.beemoon.fr ipv6: false master_port: 4506 user: root random_master: False
Editer dans /etc/salt/minion_id le nom du minion (client) et garder seulement le nom d'hôte court.
Par exemple, monminion.beemoon.fr deviendra monminion
vi /etc/salt/minion_id
démarrer le service
sudo systemctl enable salt-minion && sudo systemctl start salt-minion
Controle depuis le serveur salt
Maintenant le serveur salt et les agents minion sont installés. Il faut désormais que le serveur accepte la connexion des minions avec la commande (à lancer sur le serveur salt): salt-key
La communication entre agent et serveur salt se base sur des échanges de clés: https://docs.saltproject.io/salt/install-guide/en/latest/topics/accept-keys.html#accept-keys
Cette commande gére les clés d'authentification entre le maître (master) et les agents (minions).
salt-key -L # List all keys salt-key -A # Accept all unaccepted keys
On peut lancer des tests basics de controle
Le status des minions connu par le serveur salt
salt-run manage.status
la version de l'agent installé sur tous les minions
salt '*' test.version
Voilà Salt est opérationnel. Voir maintenant le fonctionnement de salt!
En cas de pb avec les clé on peut les remplacer:
ou avec l'aide
salt-key --help