Aller au contenu
Infrastructure as Code medium

Formation Salt : states, pillars, grains et orchestration

6 min de lecture

Salt (anciennement SaltStack, aujourd'hui porté par le Salt Project) est un outil de gestion de configuration et d'orchestration open source. Il décrit l'état voulu de vos serveurs en YAML + Jinja, l'applique de façon idempotente, et pilote des milliers de nœuds en quasi temps réel grâce à son bus d'événements. Cette formation le prend de zéro, du premier ping à une plateforme complète orchestrée, avec des labs reproductibles sur des VM KVM/libvirt. Public visé : administrateurs systèmes et DevOps, débutants acceptés, à l'aise avec la ligne de commande Linux.

  • Installer un master et des minions, et lancer votre premier test.ping.
  • Cibler finement les minions (globbing, grains, matchers) et exécuter des commandes distantes.
  • Écrire des states déclaratifs et idempotents avec top file, requisites, pillars, grains et Jinja.
  • Orchestrer un déploiement multi-machines (web + base de données).
  • Sécuriser les secrets (GPG renderer, Vault) et exploiter Salt en production.

Salt repose sur une architecture master/minion : un master central envoie des ordres, des minions installés sur chaque serveur les exécutent et renvoient leurs résultats. La communication passe par un bus de messages ZeroMQ rapide, ce qui explique la réputation de Salt sur les grands parcs et l'orchestration temps réel. Salt sait aussi fonctionner sans agent via Salt SSH, à la manière d'Ansible.

Deux notions structurent tout le reste. Les grains sont les faits statiques d'un minion (système d'exploitation, CPU, rôle), collectés côté minion. Les pillars sont des données confidentielles servies par le master, ciblées par minion : c'est là que vivent mots de passe, clés et variables d'environnement. Combinés à Jinja, ils rendent les states génériques et réutilisables.

Apprendre Salt reste pertinent en 2026 : la version stable est la série 3008, le packaging onedir est désormais le standard, et de nombreuses organisations exploitent un socle Salt pour la configuration, la conformité et la réaction automatique aux événements via le Reactor.

La formation compte 15 modules, du plus simple au plus avancé. Le mieux est de les suivre dans l'ordre : chaque module s'appuie sur le précédent. Un projet fil rouge court en parallèle : vous construisez progressivement une infrastructure complète (master, minions, DNS, Nginx, PostgreSQL, application, reverse proxy, sauvegardes, supervision, durcissement) entièrement pilotée par Salt.

Les trois premiers modules sont disponibles ci-dessous. Ils installent une architecture complète, vous font piloter le parc à distance, puis décrire son état de façon déclarative.

Les modules suivants complètent le parcours et arrivent progressivement, chacun validé sur un lab avant publication :

  1. Les modules Salt : pkg, service, file, user, cron, git.
  2. Jinja : variables, conditions, boucles, filtres et macros.
  3. Les pillars : configuration et données sensibles par minion et par environnement.
  4. Les grains : faits système et grains personnalisés pour déployer selon la cible.
  5. Gestion des fichiers : file.managed, file.recurse, templates et vérification.
  6. Orchestration : runner, orchestrate et déploiement coordonné multi-machines.
  7. Salt SSH : administrer des serveurs sans agent, cas d'usage et limites.
  8. Le bus d'événements : Reactor et beacons pour automatiser les réactions.
  9. Gestion des secrets : GPG renderer, Vault et pillars chiffrés.
  10. Bonnes pratiques : dépôt Salt, environnements, GitFS, versionning et tests.
  11. Salt en production : haute disponibilité du master, scaling, sécurité et supervision.
  12. L'écosystème : GitFS, Vault, CI/CD, conteneurs, Terraform et cloud-init.

Les quatre outils résolvent le même problème avec des philosophies différentes. Ansible est agentless et pilote par SSH en YAML : prise en main rapide. Chef décrit la configuration en Ruby (agent-based). Puppet utilise un DSL déclaratif agent-serveur. Salt combine les deux mondes : un mode master/minion très rapide pour l'orchestration temps réel, et un mode Salt SSH sans agent quand installer un minion n'est pas possible.

Le point fort de Salt tient à son bus d'événements : les minions publient des événements que le Reactor peut transformer en actions automatiques, ce qui permet des architectures réactives difficiles à reproduire ailleurs. Si vous débutez la gestion de configuration, comparez avec la formation Ansible, la formation Chef et le panorama des outils pour choisir en connaissance de cause.

  1. Salt décrit l'état voulu en YAML + Jinja et l'applique de façon idempotente.
  2. L'architecture master/minion privilégie la vitesse et l'orchestration temps réel ; Salt SSH offre un mode sans agent.
  3. Les grains (faits du minion) et les pillars (données ciblées du master) rendent les states génériques et sécurisés.
  4. Le bus d'événements et le Reactor distinguent Salt : des infrastructures réactives pilotées par les événements.
  5. Le parcours va du premier ping à une plateforme complète orchestrée, avec labs reproductibles sur VM KVM.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn