Article

Ansible 088 – AWS : ADD_HOST, WAIT_FOR ET CREATION DE VOLUMES EC2

TL;DR

Cet episode de la formation Ansible traite de **AWS : ADD_HOST, WAIT_FOR ET CREATION DE VOLUMES EC2**. L objectif est de relier Ansible a une infrastructure cloud concrete. Le depot tutorials-ansible fournit le support de cours et, quand il existe, les fichiers pratiques dans 88-aws-ec2-wait-volumes-mount.

AWS : ADD_HOST, WAIT_FOR ET CREATION DE VOLUMES EC2: c est quoi exactement ?

Sur AWS, Ansible manipule des ressources distantes qui ont un cycle de vie propre: instances EC2, security groups, volumes EBS, cles SSH et inventaires dynamiques. L enjeu est de garder une execution idempotente tout en respectant les contraintes du cloud, notamment la gestion des etats et des dependances entre ressources.

Dans cet article, on relie la video, le support GitLab et une lecture operationnelle du sujet. L objectif n est pas de remplacer la video, mais de fournir une fiche de synthese indexable, reutilisable et reliee aux autres episodes de la playlist.

Le probleme concret que cet episode resout

Le sujet **AWS : ADD_HOST, WAIT_FOR ET CREATION DE VOLUMES EC2** repond a un besoin frequent dans les environnements DevOps: automatiser sans transformer les scripts en suite d actions fragiles. Avec Ansible, on cherche a decrire un etat attendu, a versionner cette description et a pouvoir relancer l execution sans surprise.

Pour un debutant, le risque est souvent de memoriser une commande sans comprendre le modele mental. Pour un profil plus avance, le risque inverse est de complexifier trop vite avec des roles, variables ou templates qui masquent l intention. Cet episode sert donc de point d ancrage dans la progression.

Ce que montre le support Xavki

Le support principal de ce chapitre est disponible ici: 88-aws-ec2-wait-volumes-mount.

Points cles extraits du support de cours:

  • constituer notre inventaire avec add_host (cf vidéo 58): name: add wordpress instances to inventory, wordpress
  • constituer notre inventaire avec add_host (cf vidéo 58): name: add mariadb instances to inventory, mariadb
  • attendre que les instances répondent avec wait_for: name: Wait for ssh to come up
  • ajouter des volumes à nos instances avec ec2_vol: name: add volume to wordpresss instance
  • ajouter des volumes à nos instances avec ec2_vol: name: add volume to mariadb instance
  • ajouter des volumes à nos instances avec ec2_vol
Découvrez  Raspberry et Ansible : gestion des clefs SSH et suppression du user par défaut

Exemple de code 1 (shell)

sudo apt python3-pip
pip3 install boto boto3 --user

Exemple de code 2 (shell)

- name: add wordpress instances to inventory
    add_host:
      hostname: '{{ item.public_dns_name }}'
      ansible_host: '{{ item.public_dns_name }}'
      groups:
      - wordpress
    loop: "{{ __wordpress_instances.tagged_instances }}"

  - name: add mariadb instances to inventory
    add_host:
      hostname: '{{ item.public_dns_name }}'
      ansible_host: '{{ item.public_dns_name }}'
      mariadb_private_ip: '{{ item.private_dns_name }}'
      groups:
      - mariadb
    loop: "{{ __mariadb_instances.tagged_instances }}"

Exemple de code 3 (shell)

- name: Wait for ssh to come up
    wait_for:
      host: '{{ item.public_dns_name }}'
      port: 22
      delay: 20
      timeout: 200
      state: started
    loop: "{{ __wordpress_instances.tagged_instances }}"

  - name: Wait for ssh to come up
    wait_for:
      host: '{{ item.public_dns_name }}'
      port: 22
      delay: 20
      timeout: 200
      state: started
    loop: "{{ __mariadb_instances.tagged_instances }}"

Exemple de code 4 (shell)

- name: add volume to wordpresss instance
    ec2_vol:
      aws_access_key: "{{ ec2_access_key }}"
      aws_secret_key: "{{  ec2_secret_key }}"
      instance: "{{ item.id }}"
      region: "{{ region }}"
      volume_size: "10"
      volume_type: gp2
      device_name: /dev/xvdf
      delete_on_termination: yes
    loop: "{{ __wordpress_instances.tagged_instances }}"
    register: __ec2_volume_wordpress

  - name: add volume to mariadb instance
    ec2_vol:
      aws_access_key: "{{ ec2_access_key }}"
      aws_secret_key: "{{  ec2_secret_key }}"
      instance: "{{ item.id }}"
      region: "{{ region }}"
      volume_type: gp2
      volume_size: "20"
      device_name: /dev/xvdf
      delete_on_termination: yes
    loop: "{{ __mariadb_instances.tagged_instances }}"

Fichiers utiles repérés dans le repertoire du chapitre:

  • 88-aws-ec2-wait-volumes-mount/slides.md

Modele mental minimal

Pour raisonner avec Ansible, gardez cette chaine en tete: **inventaire -> variables -> playbook -> modules -> resultat observe**. Quand une execution ne produit pas l effet attendu, il faut revenir dans cet ordre plutot que corriger au hasard.

Le numero de l episode aide aussi a situer le sujet dans la serie. Les premiers chapitres posent les bases, les chapitres intermediaires explorent les modules et les roles, puis la formation avance vers Docker, AWX, AWS, ELK, Jinja2 et la creation de modules.

Cas d usage concrets

Voici quelques cas d usage typiques pour ce sujet:

  • Provisionner des instances EC2 avec des configurations specifiques
  • Automatiser la creation de volumes EBS et leur attachement
  • Gerer des security groups et des regles de securite
  • Deployer des applications WordPress sur AWS avec Ansible

Bonnes pratiques associes

  • Utiliser des tags pour identifier les ressources
  • Configurer les security groups de maniere restrictive
  • Utiliser des IAM roles plutot que des credentials statiques
  • Gerer les coûts avec des budgets et alertes

Pieges courants a eviter

  • Oublier de supprimer les ressources non utilisees
  • Ne pas taguer correctement les ressources
  • Utiliser des credentials en dur dans les playbooks
  • Ne pas gerer les coûts des ressources

Exemple de pratique conseillee

Une bonne maniere d utiliser cet episode consiste a repartir du repertoire 88-aws-ec2-wait-volumes-mount, lire le support, puis reproduire les commandes dans un environnement jetable. Si le chapitre contient des playbooks ou roles, lancez d abord une lecture statique: inventaire utilise, variables attendues, modules appeles, handlers eventuels et fichiers templates.

Découvrez  Ansible 074 - TP VALO : MODULE MAIL, ENVOYONS NOTRE SYNTHESE HTML

Ensuite seulement, executez le playbook sur une cible de test. L interet est de comparer trois choses: ce que le playbook declare, ce qu Ansible affiche pendant l execution, et ce qui existe reellement sur la machine apres le run.

Pour aller plus loin

  • Deployer des ressources AWS avec Ansible
  • Configurer des inventaires dynamiques AWS
  • Automatiser la gestion des instances EC2
  • Integrer Ansible avec d autres services AWS

Points de vigilance

  • Ne stockez pas de secrets en clair dans les variables ou les inventaires.
  • Verifiez toujours l idempotence en relancant le playbook au moins une deuxieme fois.
  • Preferez un module Ansible dedie a une commande shell quand le module existe.
  • Gardez les variables lisibles: trop de niveaux rendent le debug plus difficile.
  • Documentez les prerequis locaux: collections, roles Galaxy, version d Ansible et acces SSH.

Liens internes conseilles

Liens utiles

FAQ

Cet episode suffit-il pour maitriser AWS : ADD_HOST, WAIT_FOR ET CREATION DE VOLUMES EC2 ?

Non. Il sert de point d entree ou de chapitre cible dans une progression plus large. Il faut le completer par la pratique sur le depot et par les episodes voisins de la playlist. La maitrise vient de l experience pratique et de la repetition sur differents cas d usage.

Faut-il regarder la video ou lire uniquement le depot ?

Les deux sources sont complementaires. La video donne le fil pedagogique, le contexte et les explications orales, tandis que le depot donne les chemins, supports et fichiers concrets a reprendre. Pour une comprehension complete, combinez les deux approches.

Comment verifier que j ai compris ce chapitre ?

Relancez l exemple sur un environnement de test, modifiez volontairement une variable ou une cible, puis expliquez le resultat obtenu. Si vous savez diagnostiquer l ecart entre l etat attendu et l etat reel, le chapitre est compris. Essayez aussi d adapter l exemple a un cas similaire mais different.

Peut-on reutiliser directement ces fichiers en production ?

Le depot est un support pedagogique. Avant un usage production, il faut revoir les versions, les secrets, les droits, les inventaires, les handlers, les sauvegardes et les contraintes propres a votre infrastructure. Adaptez toujours les exemples a votre contexte specifique.

Quels sont les prerequis pour suivre cet episode ?

Les prerequis varient selon le numero. Pour les premiers episodes, une connaissance basique de Linux et de SSH suffit. Pour les episodes avances (AWX, AWS, ELK), il est recommande de maitriser les bases d Ansible et d avoir un environnement de test operationnel.

Conclusion

L episode **Ansible 88 – AWS : ADD_HOST, WAIT_FOR ET CREATION DE VOLUMES EC2** s inscrit dans une formation progressive qui part des fondamentaux pour aller vers des cas DevOps plus complets. L important est de conserver une logique simple: comprendre le sujet, lire les fichiers du depot, pratiquer sur un environnement de test, puis relier ce chapitre aux episodes precedents et suivants. La repetition et l experimentation sont les cles pour acquerir une veritable maitrise d Ansible.

Explorer les formations Xavki

Pour apprendre dans l ordre, repartez depuis la roadmap ou une playlist thematique.