SaltStack est un programme de gestion de configuration basé sur python qui est optimisé pour l'automatisation des fichiers de configuration, des déploiements et de tout le reste sous la rubrique centre de données défini par logiciel. Dans ce guide, vous apprendrez comment démarrer avec SaltStack, en ajoutant vos premiers nœuds et en écrivant votre première formule.
Exigences
- Instance Vultr exécutant Ubuntu 17.04 (maître)
- Instance Vultr exécutant Ubuntu 17.04 (serviteur)
Terminologie
SaltStack utilise quelques mots clés qui représentent un périphérique ou une configuration particulière, comme expliqué ci-dessous:
Maître
Il s'agit de l'instance principale qui se connecte à tous les serveurs ajoutés à votre "cluster" SaltStack, exécutant ainsi également toutes les commandes / communications avec vos serveurs.
Serviteur
Les serveurs qui sont ajoutés à votre SaltStack sont appelés serviteurs. Toutes les actions sont effectuées sur un, un groupe ou tous vos serviteurs.
Formule
Une formule représente un fichier ou un ensemble de fichiers qui présente aux sbires quelles commandes doivent être exécutées. Cela peut être l'installation d'une seule application telle que nginx
ou le déploiement de fichiers de configuration, etc.
Pilier
Un pilier est un fichier qui stocke des informations relatives à un groupe de sbires ou à un seul sbire. Par exemple, vous utiliseriez ce type de fichier pour stocker les "hôtes virtuels" pour Nginx pour un séide particulier.
Configuration du serveur
Maître
Tout d'abord, nous allons commencer par configurer le maître pour notre cluster SaltStack:
apt-get update
apt-get dist-upgrade
apt-get install salt-master
Par défaut, le maître SaltStack n'écoute sur aucune interface, car le maître communique généralement avec les sbires sur Internet public. Nous devons faire un petit changement dans le fichier de configuration qui se trouve sur /etc/salt/master
:
# The address of the interface to bind to:
interface: 0.0.0.0
Une fois les modifications enregistrées dans le fichier, redémarrez le service maître:
service salt-master restart
Serviteur
Nous pouvons maintenant ajouter notre premier séide. Allez-y et installez les packages requis:
apt-get update
apt-get dist-upgrade
apt-get install salt-minion
Ensuite, nous devons faire un autre petit changement dans la configuration SaltStack du minion qui se trouve à /etc/salt/minion
:
# Set the location of the salt master server. If the master server cannot be
# resolved, then the minion will fail to start.
master: <master_server_ip>
Remplacez-le <master_server_ip>
par l'adresse IP de votre serveur maître comme configuré précédemment. Idéalement, vous devez configurer un enregistrement DNS pour cela, afin de faciliter le changement de serveur maître.
Ensuite, nous devons redémarrer le service des sbires pour que les modifications deviennent actives:
service salt-minion restart
Opérations principales de SaltStack
Nous avons maintenant un maître et un sbire qui fonctionnent, nous pouvons donc directement aller de l'avant et travailler avec un petit ensemble de commandes SaltStack sur le maître.
Affichage de tous les serviteurs
# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
Rejected Keys:
Remarque: Nous avons déjà indiqué au serviteur à quel serveur maître il doit se connecter. Par conséquent, si vous avez suivi ce guide, vous verriez déjà le serviteur sous la Unaccepted Keys:
section.
Accepter un serviteur non accepté
# salt-key -a <minion_id>
Accepter tous les serviteurs non acceptés
# salt-key -A
Supprimer un séide
# salt-key -d <minion_id>
Remarque: <minion_id>
représente généralement le nom d'hôte UNIX de vos sbires et est stocké dans le /etc/salt/minion_id
fichier sur les sbires.
Après avoir ajouté notre serviteur au maître, nous pouvons continuer à écrire notre première formule. Dans un premier temps, nous devons créer le dossier qui stocke nos formules:
mkdir -p /srv/salt/
Créez le dossier de notre première formule:
mkdir -p /srv/salt/nginx
Fondamentalement, toutes les instructions pour une formule sont stockées dans le init.sls
fichier, par exemple /srv/salt/nginx/init.sls
,. Comme il y a une immense quantité d'opérations qui peuvent être effectuées via une formule, nous allons écrire une petite formule qui installe Nginx:
nginx:
pkg:
- installed
Après avoir écrit dans le init.sls
fichier comme expliqué ci-dessus, nous pouvons continuer et l'exécuter:
salt '*' state.sls nginx
Remarque: nginx
représente le nom du dossier que nous avons créé précédemment.
Conclusion
SaltStack est un très bon logiciel pour automatiser tout type de fichiers de configuration, de déploiements de services, de déploiements de serveurs initiaux et similaires. Étant donné que SaltStack est basé sur Python, vous pouvez facilement ajouter vos propres modules également, si vous maîtrisez le langage. Bonne automatisation!