Installation#
Installation#
Installation#
Certaines distributions proposent des paquets SaltStack dans leurs entrepôts. Pour Debian par exemple, un simple apt install salt-master ou apt install salt-minion est suffisant.
SaltStack met à disposition des entrepôts de paquets pour plusieurs distributions, ce qui peut permettre d’installer les dernières versions dès leur publication, sans attendre leur intégration dans la distribution utilisée. Pour obtenir la liste, consulter https://repo.saltproject.io/
Configuration initiale#
Le principal fichier de configuration du master est
/etc/salt/master. Il permet de configurer p.ex.
la racine des fichiers (file_roots, par défaut /srv/salt)
et où trouver les pillars (pillar_roots).
Si file_roots détermine où pointe salt:// ; p.ex., par
défaut, salt://states/vim/.vimrc pointe
vers le fichier .vimrc dans /srv/salt/states/vim/.vimrc.
Le principal fichier de configuration d’un minion est
/etc/salt/minion. L’entrée la plus importante de ce fichier
est la clé master, qui indique au minion son master. Cette
valeur peut soit être un FQDN ou une adresse IP.
Le fichier /etc/salt/minion_id peut être utilisé pour changer
l’identifiant du minion qui est par défaut le nom de l’hôte.
Ce fichier ne contient que le nouvel identifiant.
Initaliser la connexion entre le master et les minions#
Pour initialiser la connexion entre le master et ses minions, il faut que les minions s’authentifient auprès du master :
chaque minion génère une pair de clés
il soumet la clé publique au master
le master accepte, rejette ou supprime la clé avec la commande
salt-keysi le master accepte la clé, une communication chiffrée est établie entre ces deux machines
Les clés publiques des minions sont stockées dans /etc/salt/pki/master/minions
sur le master. La clé publique du master est stockée
dans /etc/salt/pki/minion/minion_master.pub sur chaque minion.
salt-key#
Lister toutes les clés :
salt-key
Accepter la clé d’un minion :
salt-key -a <minion_id>
Accepter toutes les clés :
salt-key -A
Supprimer la clé d’un minion :
salt-key -d <minion_id>
Supprimer toutes les clés :
salt-key -D
Pour vérifier les empreintes digitales :
afficher l’empreinte sur le minion :
salt-call --local key.fingercomparer avec l’empreinte de la clé reçue par le master :
salt-key -f <minion_id>
Si un Salt roster a été mis en place, la commande
salt-run manage.safe_accept <minion_id>
permet de rajouter un minion en intégrant la vérification de l’empreinte digitale.
Avertissement
Si l’identifiant d’un minion a été changé, il va soumettre une nouvelle clé auprès du master qu’il faut accepter pour rétablir la connexion.
Il est aussi possible de configurer le master d’accepter toutes les clés :
auto_accept: True
Inversement, il est possible de permettre aux minions de se connecter à un master même si la clé publique de ce dernier a changé :
open_mode: True
Droits et permissions#
salt-master et salt-minion sont souvent exécutés en
tant que root. Ceci n’est pas indispensable, cependant
des fichiers sont par défaut écrits dans
/var/salt/,la clef privée du master doit être très bien protégée,
salt-minionlance souvent des commandes système
Il faudrait donc des configurations supplémentaires (adapter les permissions,
permettre au salt-minion d’utiliser sudo, …) pour qu’ils
puissent fonctionner correctement.
Compatibilités entre versions#
Lors des mises à jour, il est fortement recommandé de mettre à jour le master en premier, comme SaltStack ne garantit pas de compatibilité entre des minions et un master si ce dernier exécute une version antérieure à celle des minions.
Pour l’inverse, c’est-à-dire le cas où la version du master est plus récente que celle des minions, SaltStack essaie de conserver une compatibilité. Seulement en cas de mises à jour de sécurité cette compatiblité peut-être rompue.
D’une manière générale, il est conseillé d’avoir un parc de versions de Salt aussi petit que possible, et idéalement, une seule version déployée.
salt '*' grains.item saltversion
salt '*' pkg.version salt-minion
Multi-système#
Généralités#
salt-minionest géré sur de nombreux systèmessalt-mastern’est géré que sur les systèmes Unix
Distributions Unix#
Arch Linux :
yaourt saltDebian :
apt search salt-Fedora : repos officiels +
EPELFreeBSD : FreeBSD ports tree
Gentoo :
emerge app-admin/saltRHEL / CentOS :
EPELSolaris : OpenCSW package repository
Ubuntu : dépots officiels
SUSE :
zypper install salt-minion
Windows#
Installeur Windows
L’installeur demande le nom du master et le nom du minion
L’installeur est scriptable
salt windows-vm sys.list_functionsest trompeur, certaines fonctions ne marchent pasWindows
Powershellpermet une gestion d’installation ou autres commandesFonctionnalité de dépots de logiciels Windows exploitable par salt avec salt-winrepo
Fonctionnalité étendue de gestion de logiciels avec chocolatey
Mac OS X#
utilisation de homebrew (système de gestion de paquets pour Mac OS) :
brew install saltstack