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

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)

Renaud Chaput

October 20, 2018
Tweet

More Decks by Renaud Chaput

Other Decks in Programming

Transcript

  1. L’infrastructure as code au complet
    avec Ansible, Terraform et Packer
    (et comment les faire travailler ensemble)

    View Slide

  2. WeScale - Benoit Petit

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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...

    View Slide

  8. CONTACT
    twitter: @bpetit_
    [email protected]
    01 83 75 05 26
    [email protected]
    www.wescale.fr | blog.wescale.fr
    Demo: https://asciinema.org/a/207210

    View Slide