L'Infrastructure as Code au complet (par Benoit Petit)

L'Infrastructure as Code au complet (par Benoit Petit)

Presented by Benoit Petit at SysadminDays #8 (https://sysadmindays.fr)

415efaa445ed983307231341eaa4be55?s=128

Renaud Chaput

October 20, 2018
Tweet

Transcript

  1. L’infrastructure as code au complet avec Ansible, Terraform et Packer

    (et comment les faire travailler ensemble)
  2. WeScale - Benoit Petit

  3. WeScale - Benoit Petit gestion de configuration infrastructure as code

    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
  4. WeScale - Benoit Petit 1 2 3 4 5 6

    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
  5. WeScale - Benoit Petit ⇒ ➔ Ansible > 2.5: module

    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
  6. WeScale - Benoit Petit ⇒ ➔ pas (encore) de module

    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
  7. WeScale - Benoit Petit ⇒ ➔ Ansible en tant que

    provisionner pour Terraform (community) ➔ https://github.com/radekg/terraform-provisioner-ansible ➔ Ansible en tant que provisionner pour Packer: local ou remote (officiel) ⇒ Également possible...
  8. CONTACT twitter: @bpetit_ benoit.petit@wescale.fr 01 83 75 05 26 contact@wescale.fr

    www.wescale.fr | blog.wescale.fr Demo: https://asciinema.org/a/207210