Qu’est-ce que SaltStack ?

SaltStack, ou Salt, a été développé sur GitHub, le terrain de jeu en ligne des développeurs. Le logiciel open source a été mis à la disposition du public en mars 2011. C’est un outil de gestion de la configuration utilisé pour la gestion et la surveillance automatisés des systèmes de serveurs. Avec SaltStack, il est possible d’installer et de configurer un logiciel à partir d’un ordinateur central et d’exécuter des commandes de configuration en nombre illimité. Vous pouvez ici découvrir ce qui fait la particularité de Salt, comment il est utilisé par les administrateurs, et quels sont les avantages de cet outil de gestion et d’orchestration de configuration.

Qu’est-ce qui caractérise SaltStack ?

SaltStack est un logiciel open-source de l’Apache Software Foundation, qui peut être utilisé sur plusieurs plateformes. Il permet la maintenance à distance, de créer des statuts cibles prédéfinis et de lancer des contrôles, dans votre propre centre de données ainsi que dans un Cloud externe (indépendant du fournisseur). L’éditeur indique comme principaux avantages de SaltStack la facilité d’installation, le contrôle rapide de la communication en quelques millisecondes et la possibilité de gérer un grand nombre de serveurs en parallèle.

Si on le compare directement avec des systèmes similaires, tels que Terraform ou Puppet, SaltStack marque des points grâce à ses possibilités d’application polyvalentes et à sa rapidité. Le principe reste néanmoins le même : l’administrateur détermine de manière centralisée sur un serveur la configuration des autres ordinateurs. Le logiciel de gestion de configuration le met ensuite en œuvre sur les différents clients. SaltStack utilise la bibliothèque d’échange de messages asynchrone ZeroMQ pour la communication entre le serveur et les clients. Cette bibliothèque permet de distribuer rapidement de petites et de grandes quantités de données. La communication est sécurisée grâce au chiffrement des données avec la méthode de chiffrement symétrique AES. Enfin, la fonction RAET (Reliable Asynchronous Event Transport), mise en œuvre en 2014, offre une sécurité supplémentaire lors du transport de données.

Les configurations actuelles fonctionnent avec SaltStack via un fichier texte au format YAML. Le langage de balisage simple permet de représenter les données structurées sous forme séquentielle. À l’aide du langage de programmation Python, SaltStack vous permet de combiner de nombreuses commandes de configuration prêtes à être exécutées.

Diversité des procédures de gestion avec SaltStack

Outre la gestion de systèmes comme Linux, SaltStack peut également être utilisé pour organiser les clients MacOS et Windows. SaltStack offre une interface universelle avec le Cloud Salt. Vous pouvez donc configurer et gérer de nombreux systèmes. Même les Cloud privés et les environnements virtuels peuvent être gérés automatiquement.

Note

Dans le tutoriel DevOp en anglais, vous trouverez tout ce qu’il faut savoir pour utiliser Terraform et SaltStack.

Les avantages pour les administrateurs

  1. Quel que soit le système cible que les administrateurs veulent modifier, les commandes dans SaltStack sont toujours les mêmes. Cela rend le fonctionnement simple et facile à maîtriser.
  2. L’outil assure non seulement la répartition automatisée des configurations, mais peut également réagir aux événements, car il enregistre le type de communication échangé dans l’infrastructure.
  3. SaltStack est intégralement inclus dans Salt Open et est disponible pour tous dans la licence Apache 2.0. En outre, vous pouvez participer activement à la conception du logiciel. Si vous appréciez le support de l’éditeur, sachez qu’une version Entreprise est disponible.

Les principaux termes expliqués

Si vous utilisez SaltStack, vous rencontrerez toujours certains termes qui sont liés à l’outil de gestion de configuration. Nous avons résumé ci-dessous les plus importants :

Salt-Master

Le Salt-Master a été développé avec le langage de programmation Python et est le serveur pour la bibliothèque de messagerie ZeroMQ, qui à son tour transmet les données au client. Les serveurs et les clients sont également appelés « master » et « minion ». C’est pourquoi le serveur de SaltStack est nommé Salt-Master. La gestion centrale de tous les systèmes cibles intégrés s’effectue via ce serveur. Les commandes et les fichiers sont transmis par son intermédiaire.

Salt-Minion

Les Salt-Minions reçoivent les ordres du Salt-Master. Ils l’informent de tous les événement et résultats pertinents.

Salt-Syndic

Le Salt-Syndic est un Salt-Master intermédiaire. Il agit entre le Salt-Master et les Salt-Minions.

Salt-SSH

Parfois, il peut arriver qu’un Salt-Minion ne puisse pas être exécuté sur un système cible. Via SSH, le Salt-Master peut contacter directement ce système. Toutefois, cela élimine l’échange via ZeroMQ, ce qui peut ralentir considérablement le processus. En outre, certaines fonctions et certains modules peuvent également être omis.

Salt-Proxy Minion

Avec le Salt-Proxy Minion, il est possible de gérer des appareils tiers. Cela inclut, par exemple, les dispositifs de réseau tels que les routeurs ou les commutateurs.

Comment fonctionne SaltStack ?

Les Salt-Minions sont approvisionnés en commandes par le Salt-Master via des « bus » tels que ZeroMQ, SSH ou Proxy-Minion. Les Salt-Minions font leur rapport avec une clé individuelle. Le Salt-Master doit l’accepter lors du premier contact afin que la commande puisse alors être exécutée. La communication chiffrée avec les paires de clés a donc lieu.

Imaginons que vous souhaitez configurer un logiciel. Pour cela, vous donnez le commandement au Salt-Master, qui le transmet à tous les Salt-Minions. Le logiciel est ensuite automatiquement configuré sur tous les appareils de l’infrastructure. Le « master » peut être éventuellement dupliqué en tant que Salt-Syndic.