Présentation des Outils IaC

1. Ansible

Ansible –> Playbooks : Ansible combine le déploiement multi-noeuds, l’exécution de tâches ad hoc et la gestion de la configuration en un seul logiciel. Il gère les noeuds avec SSH et requiert l’installation de python (2.6+ ou 3.5+). Les modules fonctionnent avec JSON et les sorties standard. Ils peuvent être écrits dans n’importe quel langage. Ansible utilise YAML pour exprimer des descriptions réutilisables de systèmes.

Ansible peut être considéré comme un :

  • “configuration management tool”
  • “deployment tool”
  • “orchestration of deployment tool”
  • “provisioning tool”

2. Chef

Chef –> Cookbook : Chef est un outil de gestion de configuration écrit en Erlang qui utilise un DSL Ruby pur pour la rédaction de “recettes” de configuration. Ces recettes contiennent des ressources qui doivent être placées dans l’état déclaré. Chef peut être utilisé comme un outil client-serveur ou utilisé en mode “solo”.

3. SaltStack

SaltStack –> Salt State : Salt a commencé comme un outil de gestion de serveur à distance. Au fur et à mesure de son utilisation, il a acquis un certain nombre de fonctionnalités étendues, notamment un mécanisme plus complet de configuration de l’hôte. Elle est une fonctionnalité relativement nouvelle facilitée par le composant Salt States.

4. CFEngine

CFEngine –> Policy : CFEngine est un système d’agents légers. Il gère la configuration d’un grand nombre d’ordinateurs à l’aide du paradigme client-serveur ou autonome. Tout état client différent de la description de la politique est rétabli à l’état souhaité. L’état de configuration est spécifié via un langage déclaratif. Le paradigme de CFEngine est la «immunologie informatique» convergente.

5. Puppet Labs

Puppet Labs –> Manifest : Puppet offre un langage déclaratif personnalisé pour décrire la configuration du système, distribué à l’aide du paradigme client-serveur (utilisant le protocole XML-RPC dans les versions antérieures, avec un commutateur récent pour REST) et une bibliothèque pour réaliser la configuration. La couche d’abstraction des ressources permet aux administrateurs de décrire la configuration en termes de haut niveau, tels que les utilisateurs, les services et les packages. Puppet s’assurera alors que l’état du serveur correspond à la description.

6. Terraform