Upgrade to Pro — share decks privately, control downloads, hide ads and more …

L'infrastructure As Code au grand complet avec Ansible, Terraform et Packer, par Benoit Petit

WeScale
October 19, 2018

L'infrastructure As Code au grand complet avec Ansible, Terraform et Packer, par Benoit Petit

Le principe d'infrastructure as code, permet de résoudre de nombreuses problématiques. Le principal intérêt est certainement de permettre à la fois l'automatisation et un contrôle fin de l'état de son infrastructure, avec historique des changements. Cette présentation tentera de donner un aperçu clair des capacités de trois outils, parmi les nombreux existants dans ce domaine: Ansible, Terraform et Packer. Nous montrerons également comment les faire fonctionner de concert de manière à disposer d'une solution complète et simple pour automatiser et gérer l'ensemble de ses architectures, même lorsqu'elles sont réparties sur plusieurs plateformes.

WeScale

October 19, 2018
Tweet

More Decks by WeScale

Other Decks in Technology

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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...
  6. CONTACT twitter: @bpetit_ [email protected] 01 83 75 05 26 [email protected]

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