SaltStack : outil (gratuit) de gestion des configurations, alternative à Ansible
Il existe plusieurs outils open source de gestion des configurations, qui à partir de playbooks, facilitent l'exécution automatique et le déploiement de codes. SaltStack en fait partie.
Saltstack : c’est quoi ?
Saltstack, appelé aussi Salt, est un logiciel développé en Python en 2011, centré sur la gestion des configurations applicatives.
Cet outil DevOps disponible en open source, automatise le packaging et le provisioning de code applicatif sur les infrastructures de production. Il se positionne en alternative à Ansible et Puppet.
Comment installer Saltstack ?
Pour utiliser SaltStack, il faut commencer par installer le master (le serveur maître) et le minion (le client). Il faut, pour cela, effectuer les commandes suivantes :
- Installer les mises à jour : apt-get update.
- Installer le serveur : apt-get install salt-master.
- Installer le client : apt-get install salt-minion.
- Installer Syndic apt-get install salt-syndic.
Il faut ensuite procéder à la configuration de Salt : Se rendre dans le dossier /etc/salt pour nommer les fichiers de configuration /etc/salt/master, et /etc/salt/minion. Puis attribuer à Salt une IP spécifique, redéfinir ensuite l’instruction interface dans /etc/salt/master :
- - #interface: 0.0.0.0
- + interface: 192.168.0.25
Après avoir réactualisé le fichier, redémarrez le Salt master avec la commande service salt-master restart. Par défaut, un Salt minion tente de se connecter au nom DNS salt ; si la connexion se fait directement alors aucune configuration du minion n’est requise. Sinon, il faudra redéfinir l’instruction master dans /etc/salt/minion :
- - #master: salt
- + master: 192.168.0.25
Après avoir réactualisé le fichier, redémarrez le Salt minion avec la commande service salt-minion restart. Vous pouvez maintenant démarrer Salt en exécutant :
- Le master en arrière-plan avec la commande : salt-master
- Et le minion en arrière-plan avec : salt-minion.
Salt Mine
Salt Mine permet de collecter des données à partir des minions et de les stocker dans le serveur master. Ainsi, tous les utilisateurs peuvent accéder aux données en utilisant le module salt.modules.mine. Plusieurs fonctions Mine existent pour la collecte, le stockage et l’accès aux données.
Cmd State
Cmd state est un module qui permet de conditionner l’exécution des commandes. Il indique dans quels cas une commande doit être exécutée.
Minion et Grains
Salt utilise un vocabulaire particulier. minion désigne ici chacune des machines clientes quand le serveur est désigné par le terme master. Les informations échangées entre master et les minions sont appelées grains. Ce sont en effet des informations reçues au lancement du minion, elles sont donc statiques. Il est possible d’avoir la liste des grains disponibles en utilisant le module grains.ls et les données peuvent être listées grâce au module grains.items.
Télécharger SaltStack
Plusieurs versions de Salt sont disponibles en téléchargement ici.
SaltStack vs Ansible
Comme Salt, Ansible est un outil de configuration de serveur. Il est très apprécié parce qu’il ne nécessite pas d’intermédiaire pour le déploiement et la communication, quand Salt utilise les minions. Par ailleurs, Ansible utilise la plupart des langages de programmation en plus de Python utilisé par Salt. L’utilisation de minions par Salt a cependant l’avantage de le rendre plus simple.