infrastructure as code (images) idempotent idempotent non idempotent stateless stateful stateless sans agent / basé sur ssh sans agent / basé sur l’API du service sans agent / basé sur l’API du provider et SSH open-source / RedHat open-source / HashiCorp open-source / HashiCorp nombreux modules, templating... nombreux providers/plateformes supportées nombreux builders/format supportés
7 8 9 1. génération de la configuration packer 2. lancement de packer 3. création de l’image 4. récupération des information sur l’objet créé 5. génération de la configuration terraform (avec ajout de la ressource terraform pour l’AMI) 6. lancement de terraform 7. création de l’instance 8. récupération des outputs pour génération de l’inventaire ansible 9. lancement des tâches/rôles ansible: configuration de l’instance Cas pratique https://github.com/bpetit/ansible-role-iaas
pour piloter Terraform ◆ outputs terraform ◆ génération d’inventaire ansible dynamiquement (in-memory, fichier, ou DCIM/CMDB externe) ➔ https://github.com/adammck/terraform-inventory ◆ se base sur le tfstate Terraform ◆ l’inventaire ansible est rempli automatiquement
dédié, utilisation des modules raw/shell ➔ procédure: ◆ générer la configuration packer (module template + jinja2) ◆ lancer la création de l’image (module shell ou cmd) ◆ récupérer le résultat et les informations concernant l’image grâce au post-processor manifest ◆ renseigner les ressources/data Terraform avec les images crées
provisionner pour Terraform (community) ➔ https://github.com/radekg/terraform-provisioner-ansible ➔ Ansible en tant que provisionner pour Packer: local ou remote (officiel) ⇒ Également possible...