Atelier - Conclusion

Lisez ceci dans d’autres langues:
uk English, japan日本語, brazil Portugues do Brasil, france Française, Español Español.

Table des matières

Objectif

C’est le dernier défi où nous essayons de rassembler la plupart de ce que vous avez appris.

Guide

Préparons le terrain

Votre équipe d’exploitation et votre équipe de développement d’applications aiment ce qu’ils voient dans Ansible Tower. Pour vraiment l’utiliser dans leur environnement, ils ont mis en place ces exigences:

Le référentiel Git

Tout le code est déjà en place - c’est un Atelier pour Tower apres tout. Consultez le Workshop Project à https: //github.com/ansible/workshop-examples. Vous y trouverez le playbook webcontent.yml, qui appelle le rôle role_webcontent.

Par rapport au précédent rôle d’installation d’Apache, il y a une différence majeure: il existe maintenant deux versions d’un modèle index.html et une tâche de déploiement du fichier modèle qui a une variable dans le nom du fichier source:

dev_index.html.j2

<body>
<h1>This is a development webserver, have fun!</h1>
{{ dev_content }}
</body>

prod_index.html.j2

<body>
<h1>This is a production webserver, take care!</h1>
{{ prod_content }}
</body>

main.yml

[...]
- name: Deploy index.html from template
  template:
    src: "{{ stage }}_index.html.j2"
    dest: /var/www/html/index.html
  notify: apache-restart

Préparer l’inventaire

Il y a bien sûr plus d’une façon d’y parvenir, mais voici ce que vous devez faire:

Astuce

Assurez-vous de garder les trois tirets qui marquent le début de YAML et la ligne ansible_host en place !

Créer le modèle

Vérifiez les résultats

Cette fois, nous utilisons la puissance d’Ansible pour vérifier les résultats: exécutez curl pour obtenir le contenu Web de chaque nœud, orchestré par une commande Ad-hoc sur la ligne de commande de votre hôte de contrôle Tower:

Astuce

Nous utilisons la variable ansible_host dans l’URL pour accéder à tous les nœuds du groupe d’inventaire.

[student<X>@ansible ~]$ ansible web -m command -a "curl -s http://{{ ansible_host }}"
 [WARNING]: Consider using the get_url or uri module rather than running 'curl'.  If you need to use command because get_url or uri is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message.

node2 | CHANGED | rc=0 >>
<body>
<h1>This is a production webserver, take care!</h1>
prod wweb
</body>

node1 | CHANGED | rc=0 >>
<body>
<h1>This is a development webserver, have fun!</h1>
dev wweb
</body>

node3 | CHANGED | rc=0 >>
<body>
<h1>This is a development webserver, have fun!</h1>
dev wweb
</body>

Notez l’avertissement de la première ligne de ne pas utiliser curl via le module command car il existe de meilleurs modules directement dans Ansible. Nous y reviendrons dans la prochaine partie.

Ajouter un questionnaire

Vérifiez à nouveau les résultats. La dernière fois nous avons reçu un avertissement en utilisant curl via le module command, cette fois nous ferons mieux les chose et utiliserons le module uri dédié. Comme arguments, il a besoin de l’URL et d’un indicateur pour afficher le corps dans les résultats.

[student<X>ansible ~]$ ansible web -m uri -a "url=http://{{ ansible_host }}/ return_content=yes"
node3 | SUCCESS => {
    "accept_ranges": "bytes",
    "ansible_facts": {
        "discovered_interpreter_python": "/usr/bin/python"
    },
    "changed": false,
    "connection": "close",
    "content": "<body>\n<h1>This is a development webserver, have fun!</h1>\nwerners dev content\n</body>\n",                                                                                         
    "content_length": "87",
    "content_type": "text/html; charset=UTF-8",
    "cookies": {},
    "cookies_string": "",
    "date": "Tue, 29 Oct 2019 11:14:24 GMT",
    "elapsed": 0,
    "etag": "\"57-5960ab74fc401\"",
    "last_modified": "Tue, 29 Oct 2019 11:14:12 GMT",
    "msg": "OK (87 bytes)",
    "redirected": false,
    "server": "Apache/2.4.6 (Red Hat Enterprise Linux)",
    "status": 200,
    "url": "http://18.205.236.208"
}
[...]

Solution

Avertissement

Solution pas en dessous

Vous avez déjà effectué toutes les étapes de configuration requises dans le laboratoire. En cas de doute, reportez-vous simplement aux chapitres respectifs.

La fin

Félicitations, vous avez terminé tous vos ateliers ! Nous espérons que vous avez apprécié votre première rencontre avec Ansible Tower autant que nous avons nous même apprécié la création des ateliers.


Navigation
Exercise précédent

Cliquez ici pour revenir à l’atelier Ansible pour Red Hat Enterprise Linux