Installer un serveur Salt Master via un Salt Minion Masterless
Sommaire
L'objectif est de déployer notre serveur Salt de manière industrielle et qu'il soit ensuite auto géré via la formule salt-formula.
Cet article part du principe que vous connaissez les fondamentaux de Salt : https://docs.saltproject.io/en/getstarted/index.html
Prérequis
Système : Debian 12
Url du dépôt contenant tous les pillars de vos formules Salt (dans l'exemple nous utiliserons https://gitlab.com/kartzone/kartzone-demo.git)
Url d'accès vers vos pillars de la formule salt-formula (dans l'exemple nous utiliserons https://gitlab.com/kartzone/kartzone-demo/-/blob/main/salt.sls)
Paquetages installés sur le système : git vim sudo curl
1sudo apt-get install -y git vim sudo curl
Procédure manuelle
Installez Salt Minion sur le système
1mkdir /etc/apt/keyrings 2 3sudo curl -fsSL -o /etc/apt/keyrings/salt-archive-keyring-2023.gpg https://repo.saltproject.io/salt/py3/debian/12/amd64/SALT-PROJECT-GPG-PUBKEY-2023.gpg 4 5echo "deb [signed-by=/etc/apt/keyrings/salt-archive-keyring-2023.gpg arch=amd64] https://repo.saltproject.io/salt/py3/debian/12/amd64/latest bookworm main" | sudo tee /etc/apt/sources.list.d/salt.list 6 7sudo apt-get install -y salt-minion
Configurez le Salt Minion pour qu'il fonctionne en mode Masterless
1sudo sed -i 's/\#file_client: remote/file_client: local/g' /etc/salt/minion 2sudo service salt-minion restart
Créez les répertoires des states et pillars Salt
1sudo mkdir -p /srv/salt /srv/pillar 2sudo chmod 755 /srv/salt 3sudo chmod 750 /srv/pillar
Clonez le dépôt de la formule salt-formula
1cd /srv/salt 2sudo git clone https://github.com/saltstack-formulas/salt-formula.git 3sudo mv /srv/salt/salt-formula/salt /srv/salt/ 4sudo rm -rf /srv/salt/salt-formula
Configurer le fichier top.sls des states
1echo "base: 2 '*': 3 - salt.master 4 - salt.formulas 5" | sudo tee /srv/salt/top.sls
Configurer les pillars pour configurer le serveur Salt Master
1sudo rm -f /srv/pillar/salt.sls 2sudo curl -o /srv/pillar/salt.sls -s -O https://gitlab.com/kartzone/kartzone-demo/-/raw/main/salt.sls 3echo "base: 4 '*': 5 - salt 6" | sudo tee /srv/pillar/top.sls
Préparer les pillars pour le futur serveur Salt Master
1sudo rm -rf /srv/salt/pillar 2sudo mkdir -p /srv/salt/pillar 3sudo git clone https://gitlab.com/kartzone/kartzone-demo.git /srv/salt/pillar/
Configurez votre serveur Salt Master
1sudo salt-call state.apply
Nettoyez le Salt Minion Masterless
1sudo rm -rf /srv/salt/salt /srv/pillar 2sudo mv /srv/salt/top.sls /srv/salt/states/ 3sudo mkdir -p /etc/salt/gpgkeys /srv/salt/states/win 4sudo chown -R salt /etc/salt /var/cache/salt /var/log/salt /var/run/salt /srv/salt/states/win 5sudo chmod 755 /srv/salt/states 6sudo chmod 750 /srv/salt/pillar
Synchronisez le dépôt winrepo-ng
1sudo salt-run winrepo.update_git_repos
Autoriser la clef du salt-minion du serveur Salt
1sudo salt-key --accept-all --yes
Configurez le Salt Minion pour qu'il pointe sur le serveur Salt local
1sudo sed -i 's/file_client:\ local/#file_client:\ remote/g' /etc/salt/minion 2sudo service salt-minion restart
Vérifier que le serveur Salt utilise les états Salt pour le configurer
1sudo salt-call state.show_top
Procédure industrialisée
Vous trouverez un script regroupant toutes les étapes listées ci-dessus, ici : https://gitlab.com/kartzone/kartzone-demo/-/blob/main/install-salt-master-with-minion-masterless.sh
1cd ~/
2wget https://gitlab.com/kartzone/kartzone-demo/-/raw/main/install-salt-master-with-minion-masterless.sh
3chmod +x install-salt-master-with-minion-masterless.sh
4sudo ./install-salt-master-with-minion-masterless.sh