Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| eadl:bloc4:fm2:td3 [2026/05/26 02:06] – [Structure imposée par Ansible pour un rôle] jcheron | eadl:bloc4:fm2:td3 [2026/06/12 08:05] (Version actuelle) – jcheron | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | ====== | + | ====== |
| ===== Objectifs ===== | ===== Objectifs ===== | ||
| Ligne 26: | Ligne 26: | ||
| * un cache Redis | * un cache Redis | ||
| - | Terraform a deja ete utilise dans le TD precedent pour provisionner | + | Terraform a déjà provisionné |
| - | Vous prenez le relai avec Ansible pour configurer | + | Vous utilisez |
| + | |||
| + | ===== 0. Comprendre avant de faire ===== | ||
| + | |||
| + | ==== 0.1 Rôles Ansible ==== | ||
| + | |||
| + | Un rôle permet d’organiser : | ||
| + | |||
| + | * tâches | ||
| + | * variables | ||
| + | * handlers | ||
| + | * templates | ||
| + | |||
| + | <WRAP round help> | ||
| + | Quel critère doit guider le découpage en rôles : le service | ||
| + | ou l' | ||
| + | </ | ||
| + | |||
| + | ==== 0.2 Structure d’un rôle ==== | ||
| + | |||
| + | < | ||
| + | roles/ | ||
| + | nginx/ | ||
| + | tasks/ | ||
| + | handlers/ | ||
| + | templates/ | ||
| + | </ | ||
| ===== 1. Structure du projet ===== | ===== 1. Structure du projet ===== | ||
| Ligne 88: | Ligne 114: | ||
| python3 \ | python3 \ | ||
| python3-pip \ | python3-pip \ | ||
| + | sudo \ | ||
| curl \ | curl \ | ||
| && mkdir -p /run/sshd \ | && mkdir -p /run/sshd \ | ||
| Ligne 369: | Ligne 396: | ||
| name: "{{ db_user }}" | name: "{{ db_user }}" | ||
| password: "{{ db_password }}" | password: "{{ db_password }}" | ||
| - | priv: "{{ db_name }}.*: | ||
| state: present | state: present | ||
| + | - name: Attribution des privilègees | ||
| + | become: yes | ||
| + | become_user: | ||
| + | postgresql_privs: | ||
| + | database: "{{ db_name }}" | ||
| + | role: "{{ db_user }}" | ||
| + | privs: ALL | ||
| + | type: database | ||
| + | state: present | ||
| + | |||
| </ | </ | ||
| Ligne 416: | Ligne 452: | ||
| Questions : | Questions : | ||
| * Qu' | * Qu' | ||
| - | * Quand est-il | + | * Quand est-il |
| - | * Quelle est la difference | + | * Quelle est la différence |
| </ | </ | ||
| Ligne 423: | Ligne 459: | ||
| <WRAP round todo> | <WRAP round todo> | ||
| - | Creez le fichier suivant. | + | Créez |
| Fichier : ansible/ | Fichier : ansible/ | ||
| Ligne 492: | Ligne 528: | ||
| - name: Demarrage de Flask | - name: Demarrage de Flask | ||
| - | | + | |
| - | name: flask | + | |
| - | state: started | + | |
| - | | + | |
| - | daemon_reload: | + | |
| </ | </ | ||
| Ligne 504: | Ligne 538: | ||
| --- | --- | ||
| - name: restart flask | - name: restart flask | ||
| - | | + | |
| - | name: flask | + | |
| - | state: restarted | + | |
| - | | + | |
| </ | </ | ||
| Ligne 513: | Ligne 546: | ||
| <WRAP round todo> | <WRAP round todo> | ||
| - | Creez les fichiers suivants. | + | Créez |
| Fichier : ansible/ | Fichier : ansible/ | ||
| Ligne 577: | Ligne 610: | ||
| * Quelle est la difference entre copy et template dans Ansible ? | * Quelle est la difference entre copy et template dans Ansible ? | ||
| * Que fait la directive proxy_pass ? | * Que fait la directive proxy_pass ? | ||
| - | * Pourquoi utilise-t-on le nom du conteneur | + | * Pourquoi utilise-t-on le nom du conteneur |
| </ | </ | ||
| Ligne 632: | Ligne 665: | ||
| Verifiez que l' | Verifiez que l' | ||
| - | curl http:// | + | curl http:// |
| </ | </ | ||
| - | ===== 12. Probleme | + | ===== 12. Problème |
| <WRAP round todo> | <WRAP round todo> | ||
| Ligne 657: | Ligne 690: | ||
| <WRAP round todo> | <WRAP round todo> | ||
| Corrigez la valeur de backend_host et relancez le playbook. | Corrigez la valeur de backend_host et relancez le playbook. | ||
| - | Verifiez | + | Vérifiez |
| </ | </ | ||
| Ligne 665: | Ligne 698: | ||
| <WRAP round todo> | <WRAP round todo> | ||
| - | Sans aide, creez un role Ansible pour installer et configurer Netdata sur le conteneur flask. | + | Sans aide, créez |
| Contraintes : | Contraintes : | ||
| * Le service doit demarrer automatiquement | * Le service doit demarrer automatiquement | ||
| - | * Le port d'ecoute | + | * Le port d'écoute |
| - | * Un handler doit gerer le redemarrage | + | * Un handler doit gérer |
| * Le conteneur flask doit exposer le port correspondant dans main.tf | * Le conteneur flask doit exposer le port correspondant dans main.tf | ||
| - | Verifiez | + | Vérifiez |
| </ | </ | ||
| Ligne 679: | Ligne 712: | ||
| <WRAP round todo> | <WRAP round todo> | ||
| - | * Ajoutez un tag Ansible sur chaque play pour pouvoir executer uniquement un role specifique | + | * Ajoutez un tag Ansible sur chaque play pour pouvoir executer uniquement un rôle spécifique |
| - | * Creez un fichier ansible.cfg pour eviter | + | * Créez |
| - | * Chiffrez le fichier group_vars/ | + | * Chiffrez le fichier group_vars/ |
| </ | </ | ||