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-key
si 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.finger
comparer 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-minion
lance 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-minion
est géré sur de nombreux systèmessalt-master
n’est géré que sur les systèmes Unix
Distributions Unix#
Arch Linux :
yaourt salt
Debian :
apt search salt-
Fedora : repos officiels +
EPEL
FreeBSD : FreeBSD ports tree
Gentoo :
emerge app-admin/salt
RHEL / CentOS :
EPEL
Solaris : 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_functions
est trompeur, certaines fonctions ne marchent pasWindows
Powershell
permet 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