From 09476b7c80af9d420ade71375de7f7fb143b7e7c Mon Sep 17 00:00:00 2001 From: Pierre Blanc Date: Mon, 27 Apr 2020 15:34:42 -0400 Subject: [PATCH] Add French translation for the ansible_rhel Tower exercice --- exercises/ansible_rhel/2.1-intro/README.fr.md | 102 +++++++ exercises/ansible_rhel/2.2-cred/README.fr.md | 200 ++++++++++++ .../ansible_rhel/2.3-projects/README.fr.md | 278 +++++++++++++++++ .../ansible_rhel/2.4-surveys/README.fr.md | 197 ++++++++++++ exercises/ansible_rhel/2.5-rbac/README.fr.md | 158 ++++++++++ .../ansible_rhel/2.6-workflows/README.fr.md | 289 ++++++++++++++++++ exercises/ansible_rhel/2.7-wrap/README.fr.md | 204 +++++++++++++ 7 files changed, 1428 insertions(+) create mode 100644 exercises/ansible_rhel/2.1-intro/README.fr.md create mode 100644 exercises/ansible_rhel/2.2-cred/README.fr.md create mode 100644 exercises/ansible_rhel/2.3-projects/README.fr.md create mode 100644 exercises/ansible_rhel/2.4-surveys/README.fr.md create mode 100644 exercises/ansible_rhel/2.5-rbac/README.fr.md create mode 100644 exercises/ansible_rhel/2.6-workflows/README.fr.md create mode 100644 exercises/ansible_rhel/2.7-wrap/README.fr.md diff --git a/exercises/ansible_rhel/2.1-intro/README.fr.md b/exercises/ansible_rhel/2.1-intro/README.fr.md new file mode 100644 index 000000000..68f3db238 --- /dev/null +++ b/exercises/ansible_rhel/2.1-intro/README.fr.md @@ -0,0 +1,102 @@ +# Atelier - Introduction à Ansible Tower + +**Lisez ceci dans d'autres langues**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md), ![brazil](../../../images/brazil.png) [Portugues do Brasil](README.pt-br.md), ![fr](../../../images/fr.png) [Français](README.fr.md). + +## Table des matières + +* [Objectif](#objectif) +* [Guide](#guide) +* [Pourquoi Ansible Tower?](#Pourquoi-ansible-tower) +* [Votre environnement Ansible Tower](#votre-environnement-ansible-tower) +* [Tableau de bord](#tableau-de-bord) +* [Concepts](#concepts) + +# Objectif + +Cet exercice fournira une vue d'ensemble d'Ansible Tower, y compris les fonctionnalités fournies par la plate-forme d'automatisation Red Hat Ansible. Cela couvrira les principes fondamentaux d'Ansible Tower tels que: + + - Modèles de tâches + - Projets + - Inventaires + - Identifiants + - Inventaires + +# Guide + +## Pourquoi Ansible Tower? + +Ansible Tower est une interface utilisateur Web qui fournit une solution d'entreprise pour l'automatisation informatique. Il: + + - dispose d'un tableau de bord convivial + + - complète Ansible, ajoutant des capacités d'automatisation, de gestion visuelle et de surveillance. + + - fournit un contrôle d'accès utilisateur aux administrateurs. + + - gère ou synchronise graphiquement les inventaires avec une grande variété de sources. + + - possède une API RESTful + + - Et beaucoup plus... + +## Votre environnement Ansible Tower + +Dans cet atelier, vous travaillez dans un environnement de laboratoire préconfiguré. Vous aurez accès aux hôtes suivants: + +| Rôle | Nom de l'inventaire | +| --------------------------------- | ------------------- | +| Hôte de contrôle et Ansible tower | ansible | +| Hôte géré 1 | node1 | +| Hôte géré 2 | node2 | +| Hôte géré 2 | node3 | + +Ansible Tower fournie dans ce laboratoire est configurée individuellement pour vous. Assurez-vous d'accéder à la bonne machine lorsque vous travaillez avec. Ansible Tower a déjà été installé et sous licence pour vous, l'interface utilisateur Web sera accessible via HTTP / HTTPS. + +## Tableau de bord + +Jetons un premier coup d'œil à Tower: pointez votre navigateur sur l'URL qui vous a été donnée, similaire à `https://student.workshopname.rhdemo.io` (remplacez `` par votre numéro d'étudiant et `workshopname` avec le nom de votre atelier actuel) et connectez-vous en tant qu`administrateur. Le mot de passe sera fourni par l'instructeur. + +L'interface utilisateur Web d'Ansible Tower vous accueille avec un tableau de bord avec un graphique montrant: + + - l'activité récente + + - le nombre d'hôtes gérés + + - un accès rapides vers des listes d'hôtes ayant des problèmes. + +Le tableau de bord affiche également des données en temps réel sur l'exécution des tâches terminées dans les playbooks. + +![Tableau de bord de la tour Ansible](images/dashboard.png) + +## Concepts + +Avant de continuer à utiliser Ansible Tower pour votre automatisation, vous devez vous familiariser avec certains concepts et conventions de dénomination. + +**Projets** + +Les projets sont des collections logiques de playbooks dans Ansible Tower. Ces playbooks résident soit sur l'instance d'Ansible Tower, soit dans un système de contrôle de version de code source pris en charge par Tower. + +**Inventaires** + +Un inventaire est une collection d'hôtes sur lesquels des travaux peuvent être lancés, comme un fichier d'inventaire Ansible. Les inventaires sont divisés en groupes et ces groupes contiennent les hôtes réels. Les groupes peuvent être remplis manuellement, en entrant des noms d'hôtes dans Tower, à partir de l'un des fournisseurs de cloud pris en charge par Ansible Tower ou via des scripts d'inventaire dynamique. + +**Identifiants** + +Les informations d'identification sont utilisées par Tower pour l'authentification lors du lancement de Jobs sur des machines, la synchronisation avec les sources d'inventaire et l'importation de contenu de projet à partir d'un système de contrôle de version. La configuration des informations d'identification se trouve dans les paramètres. + +Les informations d'identification de Tower sont importées et stockées chiffrées dans le système et ne peuvent être récupérées en texte brut sur la ligne de commande par aucun utilisateur. Vous pouvez accorder aux utilisateurs et aux équipes la possibilité d'utiliser ces informations d'identification, sans réellement exposer les informations d'identification à l'utilisateur. + +**Modèles** + +Un modèle de travail est une définition et un ensemble de paramètres permettant d'exécuter un travail Ansible. Les modèles de travaux sont utiles pour exécuter plusieurs fois le même travail. Les modèles de tâches encouragent également la réutilisation du contenu du playbook Ansible et la collaboration entre les équipes. Pour exécuter un travail, Tower requiert que vous créiez d'abord un modèle de travail. + +**taches** + +Une taches est essentiellement une instance d'un playbook Ansible lancé par Tower sur un inventaire d'hôtes. + +---- +**Navigation** +
+[Exercice précédent](../1.7-role/README.fr.md) - [Exercice suivant](../2.2-cred/README.fr.md) + +[Cliquez ici pour revenir à l'atelier Ansible pour Red Hat Enterprise Linux](../README.fr.md) diff --git a/exercises/ansible_rhel/2.2-cred/README.fr.md b/exercises/ansible_rhel/2.2-cred/README.fr.md new file mode 100644 index 000000000..ddefa22cf --- /dev/null +++ b/exercises/ansible_rhel/2.2-cred/README.fr.md @@ -0,0 +1,200 @@ +# Atelier - Les inventaires, identifications et commandes Ad-hoc + +**Lisez ceci dans d'autres langues**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md), ![brazil](../../../images/brazil.png) [Portugues do Brasil](README.pt-br.md), ![fr](../../../images/fr.png) [Français](README.fr.md). + +## Table des matières + +* [Objectif](#objectif) +* [Guide](#guide) +* [Examiner un inventaire](#examiner-un-inventaire) +* [Examination des informations d'identifications](#Examination-des-informations-d-identification) +* [Exécution des commandes Ad-hoc](#exécution-des-commandes-ad-hoc) +* [Défi: Les commandes Ad-hoc](#défi-les-commandes-ad-hoc) + +# Objectif + +Explorez et comprenez l'environnement du laboratoire. Cet exercice couvrira +- Localisation et compréhension: + - Tour Ansible [**Inventaire**](https://docs.ansible.com/ansible-tower/latest/html/userguide/inventories.html) + - Tour Ansible [**Informations d'identification **](https://docs.ansible.com/ansible-tower/latest/html/userguide/credentials.html) +- Exécution de commandes ad hoc via l'interface utilisateur Web d'Ansible Tower + +# Guide + +## Examiner un inventaire + +La première chose dont nous avons besoin est un inventaire de vos hôtes gérés. C'est l'équivalent d'un fichier d'inventaire dans Ansible Engine. Il y en a beaucoup plus (comme les inventaires dynamiques), mais commençons par les bases. + + - Vous devriez déjà avoir l'interface utilisateur Web ouverte, sinon: pointez votre navigateur sur l'URL qui vous a été donnée, similaire à **https://student\.workshopname.rhdemo.io** (remplacez "\ "avec votre numéro d'étudiant et" workshopname "avec le nom de votre atelier actuel) et connectez-vous en tant qu'"admin". Le mot de passe sera fourni par l'instructeur. + +Il y aura un seul inventaire, l'**inventaire de l'atelier**. Cliquez sur **Workshop Inventory** puis sur le bouton **Hôtes** + +Les informations d'inventaire dans `~/lab_inventory/hosts` ont été préchargées dans l'inventaire de la tour Ansible dans le cadre du processus d'approvisionnement. + +```bash +$ cat ~/lab_inventory/hosts +[all:vars] +ansible_user=student +ansible_ssh_pass=PASSWORD +ansible_port=22 + +[web] +node1 ansible_host=22.33.44.55 +node2 ansible_host=33.44.55.66 +node3 ansible_host=44.55.66.77 + +[control] +ansible ansible_host=11.22.33.44 +``` +> **Avertissement** +> +> Dans votre inventaire, les adresses IP seront différentes. + +## Examination des informations d identification + +Nous allons maintenant examiner les informations d'identification pour accéder à nos hôtes gérés depuis Tower. Dans le cadre du processus d'approvisionnement de cet atelier Ansible, **les informations d'identification de l'atelier** ont déjà été configurées. + +Dans le menu **RESSOURCES**, choisissez **INFORMATIONS D’IDENTIFICATION**. Maintenant, cliquez sur **Workshop Credential**. + +Notez les informations suivantes: + + + + + + + + + + + + + + + + + + +
ParameterValue
Credential TypeMachine- Machine credentials define ssh and user-level privilege escalation access for playbooks. They are used when submitting jobs to run playbooks on a remote host.
usernameec2-user which matches our command-line Ansible inventory username for the other linux nodes
SSH PRIVATE KEYENCRYPTED - take note that you can't actually examine the SSH private key once someone hands it over to Ansible Tower
+ + +## Exécution des commandes Ad hoc + +Nous allons maintenant examiner les informations d'identification pour accéder à nos hôtes gérés depuis Tower. Dans le cadre du processus d'approvisionnement de cet atelier Ansible, ** les informations d'identification de l'atelier ** ont déjà été configurées. + +Dans le menu **RESSOURCES**, choisissez **INFORMATIONS D’IDENTIFICATION**. Maintenant, cliquez sur **Workshop Credential**. + +Notez les informations suivantes: ## Exécuter des commandes ad hoc + +Il est également possible d'exécuter des commandes ad hoc à partir d'Ansible Tower. + + - Dans l'interface utilisateur Web, accédez à **RESSOURCES → Inventaires → Workshop Inventory** + + - Cliquez sur le bouton **HÔTES** pour passer à la vue des hôtes et sélectionnez les trois hôtes en cochant les cases à gauche des entrées d'hôte. + + - Cliquez sur **EXÉCUTER COMMANDE**. Dans l'écran suivant, vous devez spécifier la commande ad hoc: + + + + + + + + + + + + + +
ParametreValeur
MODULEMACHINE CREDENTIAL
pingWorkshop Credentials
+ + - Click **LAUNCH**, and watch the output. + +
+ +Le module **ping** simple n'a pas besoin d'options. Pour les autres modules, vous devez fournir la commande à exécuter comme argument. Essayez le module **command** pour trouver l'ID utilisateur de l'utilisateur exécutant à l'aide d'une commande ad hoc. + + + + + + + + + + + + + +
ParametreValeur
MODULEcommand
ARGUMENTSid
+ +> **Astuce** +> +> Après avoir choisi le module à exécuter, Tower fournira un lien vers la page de documentation du module en cliquant sur le point d'interrogation à côté de "Arguments". C'est pratique, essayez-le. + +
+ +Que diriez-vous d'essayer d'obtenir des informations secrètes du système? Essayez d'afficher le fichier */etc/shadow*. + + + + + + + + + + + + + + +
ParametreValeur
MODULEcommand
ARGUMENTScat /etc/shadow
+ + +> **Avertissement** +> +> **Attendez-vous à une erreur \!** + +Oups, le dernier ne s'est pas bien passé, tout rouge. + +Réexécutez la dernière commande Ad-hoc mais cette fois cochez la case **Activer l’élévation des privilèges**. + +Comme vous le voyez, cette fois, cela a fonctionné. Pour les tâches qui doivent s'exécuter en tant que root, vous devez augmenter les privilèges. C'est la même chose que le **become: yes** utilisé dans vos Playbooks Ansible. + +## Défi: Les commandes Ad hoc + +D'accord, un petit défi: exécutez un ad hoc pour vous assurer que le package "tmux" est installé sur tous les hôtes. En cas de doute, consultez la documentation soit via l'interface utilisateur Web comme indiqué ci-dessus, soit en exécutant `[ansible @ tower ~] $ ansible-doc yum` sur votre hôte de contrôle Tower. + +> **Avertissement** +> +> **Solution ci-dessous \!** + + + + + + + + + + + + + + + + + + +
ParametreValeur
yumcommand
ARGUMENTSname=tmux
Activer l’élévation des privilèges
+ +> **Astuce** +> +> La sortie jaune de la commande indique qu'Ansible a réellement fait quelque chose (ici, il fallait installer le paquet). Si vous exécutez la commande ad hoc une deuxième fois, la sortie sera verte et vous informera que le package a déjà été installé. Donc, le jaune dans Ansible ne signifie pas "soyez prudent"… ;-). +---- +**Navigation** +
+[Exercice précédent](../2.1-intro/README.fr.md) - [Exercice suivant](../2.3-projects/README.fr.md) + +[Cliquez ici pour revenir à l'atelier Ansible pour Red Hat Enterprise Linux](../README.fr.md) diff --git a/exercises/ansible_rhel/2.3-projects/README.fr.md b/exercises/ansible_rhel/2.3-projects/README.fr.md new file mode 100644 index 000000000..307377951 --- /dev/null +++ b/exercises/ansible_rhel/2.3-projects/README.fr.md @@ -0,0 +1,278 @@ +#Atelier - Les projets & modèles + +**Lisez ceci dans d'autres langues**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md), ![brazil](../../../images/brazil.png) [Portugues do Brasil](README.pt-br.md), ![fr](../../../images/fr.png) [Français](README.fr.md). + +## Table des matières + +* [Objectif](#objectif) +* [Guide](#guide) +* [Configuration du référentiel Git](#Configuration-du-référentiel-Git) +* [Création de projet](#création-de-projet) +* [Création de model et exécution de tache](#création-de-modèle-et-exécution-de-tache) +* [Défi: Vérification du résultat](#Défi-vérification-du-résultat) +* [Qu en est-il des bonnes pratiques?](#Qu-en-est-il-des-bonnes-pratiques) + +# Objectif + +Un projet Ansible Tower est une collection logique de Playbooks Ansible. Vous pouvez gérer vos playbooks en les plaçant dans un système de gestion de code source (SCM) pris en charge par Tower, y compris Git, Subversion et Mercurial. + +Cet exercice couvre +- Comprendre et utiliser un projet de tour Ansible +- Utilisation de Playbooks Ansible conservés dans un référentiel Git. +- Création et utilisation d'un modèle de travail Ansible + +# Guide + +## Configuration du référentiel Git + +Pour cette démonstration, nous utiliserons des playbooks stockés dans un référentiel Git: + +**https://github.com/ansible/workshop-examples** + + +Un Playbook pour installer le serveur Web Apache a déjà été validé dans le répertoire **rhel/apache**, `apache_install.yml`: +```yaml +--- +- name: Apache server installed + hosts: all + + tasks: + - name: latest Apache version installed + yum: + name: httpd + state: latest + + - name: latest firewalld version installed + yum: + name: firewalld + state: latest + + - name: firewalld enabled and running + service: + name: firewalld + enabled: true + state: started + + - name: firewalld permits http service + firewalld: + service: http + permanent: true + state: enabled + immediate: yes + + - name: Apache enabled and running + service: + name: httpd + enabled: true + state: started +``` + +> **Astuce** +> +> Notez la différence avec les autres Playbooks que vous avez peut-être écrits \! Plus important encore, il n'y a pas de "become" et "hosts" est défini sur "all". + +Pour configurer et utiliser ce référentiel en tant que système **Source Control Management (SCM)** dans Tower, vous devez créer un **projet** qui utilise le référentiel + +## Création de projet + + - Allez à **RESSOURCES → Projets** dans la vue du menu latéral, cliquez sur le bouton vert **+**. Remplissez le formulaire: + + + + + + + + + + + + + + + + + +
ParametreValeur
NOMAnsible Workshop Examples
ORGANISATIONDefault
TYPE DE SCMGit
+ +Vous avez maintenant besoin de l'URL pour accéder au dépôt. Accédez au référentiel Github mentionné ci-dessus, choisissez le bouton vert **Cloner ou télécharger** à droite, cliquez sur **Utiliser https** et copiez l'URL HTTPS. + +> **Remarque** +> +> S'il n'y a pas **Utilisez https** pour cliquer, mais un **Utilisez SSH**, ça va: copiez simplement l'URL. L'important est que vous copiez l'URL commençant par **https**. + + Entrez l'URL dans la configuration du projet: + + + + + + + + + + + + + + +
ParametreValeur
URL DU SCMhttps://github.com/ansible/workshop-examples.git
OPTIONS DE MISE A JOUR SCMCocher les 3 premieres cases.
+ + +- Cliquez sur **ENREGISTRER** + +Le nouveau projet sera synchronisé automatiquement après sa création. Mais vous pouvez également le faire manuellement: Synchronisez à nouveau le projet avec le référentiel Git en accédant à la vue **Projets** et en cliquant sur la flèche circulaire **Icône Obtenir la dernière révision SCM** à droite du projet. + +Après avoir démarré le job de synchronisation, accédez à la vue **Taches**: il y a un nouveau job pour la mise à jour du référentiel Git. + +## Création de modèle et exécution de tache + +Un modèle de travail est une définition et un ensemble de paramètres permettant d'exécuter un travail Ansible. Les modèles de travaux sont utiles pour exécuter plusieurs fois le même travail. Donc, avant d'exécuter une **Tache** à partir de Tower, vous devez créer un **Modèle** qui rassemble les informations suivantes: + +- **Inventaire**: Sur quels hôtes le travail doit-il s'exécuter? + +- **Informations d'identification** Quelles informations d'identification sont nécessaires pour se connecter aux hôtes? + +- **Projet**: Où est le Playbook? + +- **Quoi** Playbook à utiliser? + +D'accord, allons-y: accédez à la vue **Modèles**, cliquez sur le bouton ![Plus](images/green_plus.png) et choisissez **Modèle de tâche**. + +> ** Astuce ** +> +> N'oubliez pas que vous pouvez souvent cliquer sur la loupe pour obtenir un aperçu des options à choisir pour remplir les champs. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParametreValeur
NOMInstall Apache
TYPE DE TACHERun
INVENTAIREWorkshop Inventory
PROJETAnsible Workshop Examples
PLAYBOOKrhel/apache/apache_install.yml
INFORMATIONS D'IDENTIFICATIONWorkshop Credentials
LIMITEweb
OPTIONSCochez "Activer l'élévation des previlèges"
+ +- Cliquez sur **ENREGISTRER** + +Vous pouvez démarrer le travail en cliquant directement sur le bouton bleu **LANCEMENT**, ou en cliquant sur la fusée dans l'aperçu des modèles de travail. Après avoir lancé la taches, vous êtes automatiquement amené à l'aperçu des taches où vous pouvez suivre l'exécution du playbook en temps réel: + +![Exection de travail](images/job_overview.png) + +Étant donné que cela peut prendre un certain temps, examinez de plus près tous les détails fournis: + +- Tous les détails du modèle de travail comme l'inventaire, le projet, les informations d'identification et le playbook sont affichés. + +- De plus, la révision réelle du playbook est enregistrée ici - cela facilite l'analyse ultérieure des travaux. + +- Le temps d'exécution avec l'heure de début et de fin est également enregistré, ce qui vous donne une idée de la durée réelle de l'exécution d'un travail. + +- Sur le côté droit, la sortie du jeu de lecture est affichée. Cliquez sur un nœud sous une tâche et vérifiez que des informations détaillées sont fournies pour chaque tâche de chaque nœud. + +Une fois le travail terminé, accédez à la vue principale **Taches**: tous les travaux sont répertoriés ici, vous devriez voir directement avant que le Playbook n'exécute une mise à jour SCM. Il s'agit de la mise à jour Git que nous avons configurée pour le **Projet** au début \! + +## Défi: Vérification du résultat + +Il est temps de relever un petit défi: + + - Utilisez une commande Ad-hoc sur les deux hôtes pour vous assurer qu'Apache a été installé et fonctionne. + +Vous avez déjà franchi toutes les étapes nécessaires, essayez donc par vous-même. + +> **Astuce** +> +> Qu'en est-il de `systemctl status httpd`? + +> **Avertissement** +> +> **Solution ci-dessous** + +- Accédez à **Inventaires** → **Workshop Inventory** + +- Dans la vue **HOTES**, sélectionnez tous les hôtes et cliquez sur **EXECUTER DES COMMANDES** + +- Remplissez les champs suivants: + + + + + + + + + + + + + + + + + + +
ParametreValeur
MODULEcommand
ARGUMENTSsystemctl status httpd
MACHINE CREDENTIALSWorkshop Credentials
+ +- Cliquez sur **LANCER** + +## Qu en est-il des bonnes pratiques? + +Voici une liste de tâches: + +> **Avertissement** +> +> Veuillez vous assurer de terminer ces étapes car le prochain chapitre en dépend \! + +- Créez un nouvel inventaire appelé «Webserver» et n'en faites membre que «node1». + +- Copiez le modèle `Installer Apache` à l'aide de l'icône de copie dans la vue **Modèles** + +- Changez le nom en `Install Apache Ask` + +- Modifiez le paramètre **INVENTAIRE** du projet pour qu'il demande l'inventaire au lancement + +- **ENREGISTRER** + +- Lancez le modèle `Install Apache Ask`. + +- Il va maintenant demander l'inventaire à utiliser, choisissez l'inventaire `Webserver` et cliquez sur **LANCEMENT** + +- Attendez la fin du Job et assurez-vous qu'il ne s'exécute que sur `node1` + +> **Astuce** +> +> Le Job n'a rien changé car Apache était déjà installé dans la dernière version. +---- +**Navigation** +
+[Exercice précédent](../2.2-cred/README.fr.md) - [Exercice suivant](../2.4-surveys/README.fr.md) + +[Cliquez ici pour revenir à l'atelier Ansible pour Red Hat Enterprise Linux](../README.fr.md) diff --git a/exercises/ansible_rhel/2.4-surveys/README.fr.md b/exercises/ansible_rhel/2.4-surveys/README.fr.md new file mode 100644 index 000000000..ad508f130 --- /dev/null +++ b/exercises/ansible_rhel/2.4-surveys/README.fr.md @@ -0,0 +1,197 @@ +# Atelier - Les questionnaires + +**Lisez ceci dans d'autres langues**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md), ![brazil](../../../images/brazil.png) [Portugues do Brasil](README.pt-br.md), ![fr](../../../images/fr.png) [Français](README.fr.md). + +## Table des matières + +* [Objectif](#objectif) +* [Guide](#guide) +* [Utilisation d'un rôle externe](#utilisation-d-un-rôle-externe) +* [Création d un questionnaire](#création-d-un-questionnaire) + * [Création d un modèle](#création-d-un-modèle) + * [Ajout d un questionnaire](#ajout-d-un-questionnaire) +* [Test du modèle](#Test-du-modele) +* [Qu'en est-il de certaines pratiques?](#What-about-some-practice) + +# Objectif + +Démontrez l'utilisation des [questionnaires](https://docs.ansible.com/ansible-tower/latest/html/userguide/job_templates.html#surveys) dans Ansible Tower. Les questionnaires définissent des variables supplémentaires pour le playbook, comme le fait de «Demander des variables supplémentaires», mais de manière conviviale par questions et réponses. Les questionnaires permettent également de valider les entrées des utilisateurs. + +# Guide + +Vous avez installé Apache sur tous les hôtes du travail que vous venez d'exécuter. Nous allons maintenant approfondir ceci: + +- Utilisez un rôle approprié doté d'un modèle Jinja2 pour déployer un fichier `index.html`. + +- Créez un **Modèle** avec un questionnaire pour personnaliser le contenu de `index.html`. + +- Lancez le travail **Modèle** + +De plus, le rôle s'assurera également que la configuration d'Apache est correctement configurée - au cas où elle se serait brisé pendant les autres exercices. + +> **Astuce** +> +> La fonction de questionnaire ne fournit qu'une simple requête de données - elle ne prend pas en charge les principes à quatre yeux, les requêtes basées sur des données dynamiques ou des menus imbriqués. + +## Utilisation d un rôle externe + +Le Playbook et le rôle sont déjà disponible dans le référentiel Github **https://github.com/ansible/workshop-examples** dans le répertoire `rhel/apache`**`. + + Rendez-vous sur l'interface utilisateur de Github et jetez un œil au contenu: le playbook `apache_role_install.yml` fait simplement référence au rôle. Le rôle peut être trouvé dans le sous-répertoire `roles/role_apache`. + + - À l'intérieur du rôle, notez les deux variables dans le fichier de modèle `templates/index.html.j2` marqué par `{{…}}`. + - Consultez également les tâches dans `tasks/main.yml` qui déploient le fichier à partir du modèle. + +Que fait ce Playbook? Il crée un fichier (**dest**) sur les hôtes gérés à partir du modèle (**src**). + +Le rôle déploie également une configuration statique pour Apache. Il s'agit de s'assurer que toutes les modifications effectuées dans les chapitres précédents sont écrasées et que vos exemples fonctionnent correctement. + +Étant donné que le Playbook et le rôle se trouvent dans le même référentiel Github que le Playbook `apache_install.yml`, vous n'avez pas à configurer un nouveau projet pour cet exercice. + +## Création d un questionnaire + +Vous créez maintenant un nouveau modèle qui inclut un forulaire. + +### Création d un modèle + +- Allez dans **Modèles**, cliquez sur le bouton! [Plus](images/green_plus.png) et choisissez **Modèle de tâche** + +- **NOM:** Créez index.html + +- Configurez le modèle pour: + + - Utilisez le projet «Exemples d'atelier Ansible» + + - Utilisez le playbook `apache_role_install.yml` + + - Pour fonctionner sur `node1` + + - Pour fonctionner en mode privilégié + +Essayez par vous-même, la solution est ci-dessous. + +> **Avertissement** +> +> **Solution ci-dessous \!** + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParametreValeur
NOMCreate index.html
TYPE DE TACHERun
INVENTAIREWebserver
PROJETAnsible Workshop Examples
PLAYBOOKrhel/apache/apache_role_install.yml
INFORMATION D IDENTIFICATIONWorkshop Credentials
OPTIONSActivé l'élévation des privilèges
+ +- Cliquez sur **ENREGISTRER** + +> **Avertissement** +> +> ** Ne lancez pas encore le modèle!** + +### Ajout d un questionnaire + +- Dans le modèle, cliquez sur le bouton **AJOUTER UN QUESTIONNAIRE** + +- Sous **AJOUTER UNE INVITE AU QUESTIONNAIRE** remplissez: + + + + + + + + + + + + + + + + + + +
ParametreValeur
INVITEFirst Line
NOM DE VARIABLE DE REPONSEfirst_line
TYPE DE REPONSEText
+ +- Cliquez sur **+AJOUTER** + +- De la même manière, ajoutez une deuxième **Invite de questionnaire** + + + + + + + + + + + + + + + + + + +
ParametreValeur
INVITESecond Line
NOM DE VARIABLE DE REPONSEsecond_line
TYPE DE REPONSEText
+ +- Cliquez sur **+ AJOUTER** + +- Cliquez sur **ENREGISTRER** pour l'enquête + +- Cliquez sur **ENREGISTRER** pour le modèle + +## Lancer le modèle + +Lancez maintenant **Créer un modèle de travail index.html**. + +Avant le lancement, le questionnaire demandera les valeurs des **First Line** et **Second Line**. Remplissez les champs et cliquez sur **Suivant**. La fenêtre suivante affiche les valeurs, si tout va bien, exécutez la tache en cliquant sur **Lancer**. + +> **Astuce** +> +> Notez comment les deux variables sont affichées à gauche de la vue *Détails* en tant que **Variables supplémentaires**. + +Une fois le travail terminé, consultez la page d'accueil d'Apache. Dans la console SSH sur l'hôte de contrôle, exécutez `curl` par rapport à l'adresse IP de votre `node1`: + +```bash +$ curl http://22.33.44.55 + +

Apache is running fine

+

This is survey field "First Line": line one

+

This is survey field "Second Line": line two

+ +``` +Notez comment les deux variables ont été utilisées par le playbook pour créer le contenu du fichier `index.html`. + +---- +[Exercice précédent](../2.3-projects/README.fr.md) - [Exercice suivant](../2.5-rbac/README.fr.md) + +[Cliquez ici pour revenir à l'atelier Ansible pour Red Hat Enterprise Linux](../README.fr.md) diff --git a/exercises/ansible_rhel/2.5-rbac/README.fr.md b/exercises/ansible_rhel/2.5-rbac/README.fr.md new file mode 100644 index 000000000..d5869d451 --- /dev/null +++ b/exercises/ansible_rhel/2.5-rbac/README.fr.md @@ -0,0 +1,158 @@ +# Atelier - Les contrôles d'accès + +**Lisez ceci dans d'autres langues**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md), ![brazil](../../../images/brazil.png) [Portugues do Brasil](README.pt-br.md), ![fr](../../../images/fr.png) [Français](README.fr.md). + +## Table des matières + +* [Objectif](#objectif) +* [Guide](#guide) +* [Les utilisateurs](#les-utilisateurs) +* [Les équipes](#les-équipes) +* [Octroi d'autorisations](#octroi-d-autorisations) +* [Test des autorisations](#test-des-autorisations) + +# Objectif + +Vous avez déjà appris comment Ansible Tower sépare les informations d'identification des utilisateurs. Un autre avantage d'Ansible Tower est la gestion des droits des utilisateurs et des groupes. Cet exercice montre le contrôle d'accès basé sur les rôles (RBAC) + +# Guide + +## Les utilisateurs + +Il existe trois types d'utilisateurs: + +- **Utilisateur normal**: avoir un accès en lecture et en écriture limité à l'inventaire et aux projets pour lesquels cet utilisateur a reçu les rôles et privilèges appropriés. + +- **Auditeur système**: les auditeurs héritent implicitement de la capacité en lecture seule pour tous les objets de l'environnement Tower. + +- **Administrateur système**: a des privilèges d'administrateur, de lecture et d'écriture sur tout le système. + +Créons un utilisateur: + +- Dans le menu Tour sous **ACCÈS** cliquez sur **Utilisateurs** + +- Cliquez sur le bouton vert plus + +- Remplissez les valeurs pour le nouvel utilisateur: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParametreValeur
FIRST NAME Werner
LAST NAMEWeb
OrganizationDefault
EMAILwweb@example.com
USERNAMEwweb
PASSWORDansible
CONFIRM PASSWORDansible
USER TYPENormal User
+ + + + + - Confirmez le mot de passe + +- Cliquez sur **ENREGISTRER** + +## Les équipes + +Une équipe est une subdivision d'une organisation avec des utilisateurs, des projets, des informations d'identification et des autorisations associés. Les équipes fournissent un moyen de mettre en œuvre des schémas de contrôle d'accès basés sur les rôles et de déléguer les responsabilités entre les organisations. Par exemple, des autorisations peuvent être accordées à une équipe entière plutôt qu'à chaque utilisateur de l'équipe. + +Créer une équipe: + +- Dans le menu, allez à **ACCÈS → Équipes** + +- Cliquez sur le bouton vert plus et créez une équipe nommée «Contenu Web». + +- Cliquez sur **ENREGISTRER** + +Vous pouvez maintenant ajouter un utilisateur à l'équipe: + +- Passez à la vue Utilisateurs de l'équipe `Contenu Web` en cliquant sur le bouton **UTILISATEURS**. + +- Cliquez sur le bouton vert plus, cochez la case à côté de l'utilisateur `wweb` et cliquez sur **ENREGISTRER**. + +Maintenant, cliquez sur le bouton **PERMISSIONS** dans la vue **ÉQUIPES**, vous serez accueilli avec "Aucune autorisation n'a été accordée". + +Les autorisations permettent de lire, de modifier et d'administrer des projets, des inventaires et d'autres éléments de la tour. Les autorisations peuvent être définies pour différentes ressources. + +## Octroi d autorisations + +Pour permettre aux utilisateurs ou aux équipes de faire quelque chose, vous devez définir des autorisations. L'utilisateur **wweb** ne devrait être autorisé qu'à modifier le contenu des serveurs Web affectés. + +Ajoutez l'autorisation d'utiliser le modèle: + +- Dans la vue Autorisations de l'équipe `Contenu Web`, cliquez sur le bouton vert plus pour ajouter des autorisations. + +- Une nouvelle fenêtre s'ouvre. Vous pouvez choisir de définir des autorisations pour un certain nombre de ressources. + + - Sélectionnez le type de ressource **MODÈLES** + + - Choisissez le modèle `Create index.html` en cochant la case à côté. + +- La deuxième partie de la fenêtre s'ouvre, vous attribuez ici des rôles à la ressource sélectionnée. + + - Choisissez **EXECUTER** + +- Cliquez sur **ENREGISTRER** + +## Test des autorisations + +Déconnectez-vous maintenant de l'interface utilisateur Web de Tower et reconnectez-vous en tant qu'utilisateur **wweb**. + +- Accédez à la vue **MODÈLES**, vous ne devriez remarquer pour wweb que le + Le modèle index.html` est répertorié. Il est autorisé à afficher et à lancer, mais pas à modifier le modèle. Ouvrez simplement le modèle et essayez de le changer. + +- Exécutez le modèle de tâche en cliquant sur l'icône de fusée. Saisissez le contenu du questionnaire à votre convenance et lancez la tache. + +- Dans la vue **Taches** suivante, regardez bien autour de vous, notez qu'il y a des changements sur l'hôte (bien sûr…). + +Vérifiez le résultat: exécutez à nouveau `curl` sur l'hôte de contrôle pour extraire le contenu du serveur Web sur l'adresse IP de` node1` (vous pouvez bien sûr vérifier aussi `node2` et` node3`): +```bash +$ curl http://22.33.44.55 +``` + +Rappelez-vous simplement ce que vous venez de faire: vous avez autorisé un utilisateur restreint à exécuter un Playbook Ansible + + - Sans avoir accès aux informations d'identification + + - Sans pouvoir changer le Playbook lui-même + + - Mais avec la possibilité de changer les variables que vous avez prédéfinies \! + +En effet, vous avez fourni le pouvoir d'exécuter l'automatisation à un autre utilisateur sans remettre vos informations d'identification ou donner à l'utilisateur la possibilité de modifier le code d'automatisation. Et pourtant, en même temps, l'utilisateur peut toujours modifier les choses en fonction des questionnaires que vous avez créées. + +Cette capacité est l’une des principales forces d’Ansible Tower \! + +---- +**Navigation** +
+[Exercice précédent](../2.4-surveys/README.fr.md) - [Exercice suivant](../2.6-workflows/README.fr.md) + +[Cliquez ici pour revenir à l'atelier Ansible pour Red Hat Enterprise Linux](../README.fr.md) diff --git a/exercises/ansible_rhel/2.6-workflows/README.fr.md b/exercises/ansible_rhel/2.6-workflows/README.fr.md new file mode 100644 index 000000000..ec8ecfb7a --- /dev/null +++ b/exercises/ansible_rhel/2.6-workflows/README.fr.md @@ -0,0 +1,289 @@ +# Atelier - Les workflows + +**Lisez ceci dans d'autres langues**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md), ![brazil](../../../images/brazil.png) [Portugues do Brasil](README.pt-br.md), ![fr](../../../images/fr.png) [Français](README.fr.md). + +## Table des matières + +* [Objectif](#objectif) +* [Guide](#guide) + * [Scénario de l atelier](#scénario-de-l-atelier) + * [Configuration des projets](#configuration-des-projets) + * [Configuration des modèles](#configuration-des-modèles) + * [Configuration du workflow](#configuration-du-workflow) + * [Et Action](#et-action) + +# Objectif + +L'idée de base d'un flux de travail est de lier plusieurs modèles de travail ensemble. Ils peuvent ou non partager l'inventaire, les Playbooks ou même les autorisations. Les liens peuvent être conditionnels: + + - si le modèle de travail A réussit, le modèle de travail B est automatiquement exécuté par la suite + + - mais en cas d'échec, le modèle de travail C sera exécuté. + +Et les workflows ne sont même pas limités aux modèles de travail, mais peuvent également inclure des mises à jour de projet ou d'inventaire. + +Cela permet de nouvelles applications pour Ansible Tower: différents modèles de travaux peuvent s'appuyer les uns sur les autres. Par exemple. l'équipe de mise en réseau crée des playbooks avec leur propre contenu, dans leur propre référentiel Git et ciblant même leur propre inventaire, tandis que l'équipe des opérations a également ses propres repos, playbooks et inventaire. + +Dans ce laboratoire, vous apprendrez à configurer un flux de travail. + +# Guide + +## Scénario de l atelier + +Vous avez deux départements dans votre organisation: + + - L'équipe des opérations Web qui développe des Playbooks dans leur propre référentiel Git. + + - L'équipe d'applications Web, qui développe des applications Web JSP pour Tomcat aussi dans leur référentiel Git. + +Lorsqu'il y a un nouveau serveur Tomcat à déployer, deux choses doivent se produire: + + - Tomcat doit être installé, le pare-feu doit être ouvert et Tomcat doit démarrer. + + - La version la plus récente de l'application Web doit être déployée. + +Pour vous faciliter la tâche, tout ce dont vous avez besoin existe déjà dans un référentiel Github: Playbooks, fichiers JSP, etc. Il vous suffit donc juste de les coller ensemble. + +> **Remarque** +> +> Dans cet exemple, nous utilisons deux branches différentes du même référentiel pour le contenu des équipes distinctes. En réalité, la structure de vos référentiels SCM dépend de nombreux facteurs et peut être différente. + +## Configuration des projets + +Vous devez d'abord configurer le dépôt Git comme des projets comme vous le feriez normalement. Vous l'avez déjà fait auparavant, essayez de le faire vous-même. Des instructions détaillées peuvent être trouvées ci-dessous. + +> **Avertissement** +> +> Si vous êtes toujours connecté en tant qu'utilisateur **wweb**, déconnectez-vous et reconnectez-vous en tant qu'utilisateur **admin**. + +Créez le projet pour les opérations Web. Dans la vue **Projets **, cliquez sur le bouton plus vert et remplissez. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParametreValeur
NOMWebops Git Repo
ORGANISATIONDefault
SCM TYPEGit
SCM URLhttps://github.com/ansible/workshop-examples.git
SCM BRANCH/TAG/COMMITwebops
SCM UPDATE OPTIONSTick all three boxes.
+ +- Cliquez sur **ENREGISTRER** + +--- + +Créez le projet pour les développeurs d'applications. Dans la vue **Projets** cliquez sur le bouton plus vert et remplissez: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParametreValeur
NOMWebdev Git Repo
ORGANISATIONDefault
SCM TYPEGit
SCM URLhttps://github.com/ansible/workshop-examples.git
SCM BRANCH/TAG/COMMITwebdev
SCM UPDATE OPTIONSTick all three boxes.
+ +- Cliquez sur **ENREGISTRER** + +## Configuration des modèles + +Vous devez maintenant créer des modèles comme vous le feriez pour des travaux "normaux". + +Accédez à la vue **Modèles**, cliquez sur le bouton vert plus et choisissez **Modèle de taches**: +Utilisez les valeurs suivantes: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParametreValeur
NOMTomcat Deploy
TYPE DE TACHERun
INVENTAIREWorkshop Inventory
PROJETWebops Git Repo
PLAYBOOKrhel/webops/tomcat.yml
CREDENTIALWorkshop Credentials
OPTIONSEnable privilege escalation
+ +- Cliquez sur **ENREGISTRER** + +--- + +Accédez à nouveau à la vue **Modèles**, cliquez sur le bouton plus, choisissez **Modèle de tâche** pour ajouter une nouvelle tache. +Utilisez les valeurs suivantes: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParametreValeur
NOMEWeb App Deploy
TYPE DE TACHERun
INVENTAIREWorkshop Inventory
PROJETWebops Git Repo
PLAYBOOKrhel/webdev/create_jsp.yml
CREDENTIALWorkshop Credentials
OPTIONSEnable privilege escalation
+ +- Cliquez sur **ENREGISTRER** + +> **Astuce** +> +> Si vous voulez savoir à quoi ressemblent les Playbooks Ansible, consultez l'URL Github et regardez les branches appropriées. + +## Configuration du workflow + +Et maintenant, vous allez enfin configuré le workflow. Les flux de travail sont configurés dans la vue **Modèles**, vous avez peut-être remarqué que vous pouvez choisir entre **Modèle de Tache** et **Modèle de workflow** lors de l'ajout d'un modèle, ce qui est finalement logique. + + - Accédez à la vue **Modèles** et cliquez sur le bouton plus vert. Cette fois, choisissez **Modèle de workflow** + + - **NOM:** Déployer le serveur Webapp + + - **ORGANISATION:** Par défaut + + - Cliquez sur **ENREGISTRER** + + - Après avoir enregistré le modèle, le **Workflow Visualizer** s'ouvre pour vous permettre de créer un flux de travail. Vous pouvez ensuite ouvrir à nouveau le **Workflow Visualizer** en utilisant le bouton sur la page de détails du modèle. + + - Cliquez sur le bouton **DEMARRER**, un nouveau nœud s'ouvre. À droite, vous pouvez affecter une action au nœud, vous pouvez choisir entre **MODELE**, **PROJECT SYNC** et **SYNCRONISATION DES INVENTAIRES**. + + - Dans cet atelier, nous allons lier les travaux ensemble. Sélectionnez donc le travail **Tomcat Deploy** et cliquez sur **SELECTIONNER**. + + - Le nœud est annoté avec le nom du travail. Passez le pointeur de la souris sur le nœud, vous verrez un symbole vert **+** et bleu apparaître. + +> **Astuce** +> +> L'utilisation du "x" rouge vous permet de supprimer le nœud, le vert plus vous permet d'ajouter le nœud suivant et le symbole de chaîne permet de le lier un autre nœud. + + - Cliquez sur le signe vert **+** + + - Choisissez **Web App Deploy** comme prochaine tâche + + - Laissez **Exécuter** réglé sur **En cas de succès** + +> **Astuce** +> +> Le type permet des workflows plus complexes. Vous pouvez définir différents chemins d'exécution pour les exécutions réussies et les échecs du Playbook. + + - Cliquez sur **SELECTIONNER** + + - Cliquez sur **ENREGISTRER** dans la vue **VISUALISATEUR DE WORKFLOW** + + - Cliquez sur **ENREGISTRER** dans la vue **Modèle de workflow** + +> **Astuce** +> +> Le **VISUALISATEUR DE WORKFLOW** a des options pour configurer des workflows plus avancés, veuillez vous référer à la documentation. + +## Et Action + +Votre workflow est prêt à démarrer, lancez-le. + + - Cliquez directement sur le bouton bleu **LANCEMENT** ou accédez à la vue **Modèles** et lancez le flux de travail **Déployer Webapp Server** en cliquant sur l'icône de fusée. + +![vue des tâches du workflow](images/job_workflow.png) + +Notez comment l'exécution du flux de travail est affichée dans la vue des travaux. Contrairement à l'exécution normale d'un travail de modèle de travail cette fois, il n'y a pas de sortie de playbook à droite, mais une représentation visuelle des différentes étapes du flux de travail. Si vous souhaitez consulter les playbooks réels derrière cela, cliquez sur **DÉTAILS** à chaque étape. Si vous souhaitez revenir d'une vue détaillée au flux de travail correspondant, cliquez sur le bouton ![W-bouton](images/w_button.png) dans la ligne **Tâches** de la partie **DETAILS** à gauche côté de l'aperçu de l'emploi. + +Une fois le travail terminé, vérifiez si tout a bien fonctionné: connectez-vous à `node1`, `node2` ou `node3` à partir de votre hôte de contrôle et exécutez: +```bash +$ curl http://localhost:8080/coolapp/ +``` + +> **Astuce** +> +> Vous devrez peut-être attendre quelques minutes jusqu'à ce que Tomcat réponde aux demandes. + +---- +**Navigation** +
+[Exercice précédent](../2.5-rbac/README.fr.md) - [Exercice suivant](../2.7-wrap/README.fr.md) + +[Cliquez ici pour revenir à l'atelier Ansible pour Red Hat Enterprise Linux](../README.fr.md) diff --git a/exercises/ansible_rhel/2.7-wrap/README.fr.md b/exercises/ansible_rhel/2.7-wrap/README.fr.md new file mode 100644 index 000000000..5f2aab8d6 --- /dev/null +++ b/exercises/ansible_rhel/2.7-wrap/README.fr.md @@ -0,0 +1,204 @@ +# Atelier - Conclusion + +**Lisez ceci dans d'autres langues**: ![uk](../../../images/uk.png) [English](README.md), ![japan](../../../images/japan.png)[日本語](README.ja.md), ![brazil](../../../images/brazil.png) [Portugues do Brasil](README.pt-br.md), ![fr](../../../images/fr.png) [Français](README.fr.md). + +## Table des matières + +* [Objectif](#objectif) +* [Guide](#guide) + * [Préparons le terrain](#Préparons-le-terrain) + * [Le référentiel Git](#Le-référentiel-Git) + * [Préparer l'inventaire](#Préparer-l-inventaire) + * [Créer le modèle](#Créer-le-modèle) + * [Vérifiez les résultats](#Vérifiez-les-résultats) + * [Ajouter un questionnaire](#Ajouter-un-questionnaire) + * [Solution](#solution) +* [La fin](#la-fin) + +# 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: + +- Tous les serveurs Web (`node1`, `node2` et `node3`) doivent aller dans un seul groupe + +- Étant donné que les serveurs Web peuvent être utilisés à des fins de développement ou de production, il doit y avoir un moyen de les signaler en conséquence comme "stage dev" ou "stage prod". + + - Actuellement, `node1` et` node3` sont utilisés comme système de développement et `node2` est en cours de production. + +- Bien sûr, le contenu de l'application de renommée mondiale "index.html" sera différent entre les étapes de développement et de production. + + - Il devrait y avoir un titre sur la page indiquant l'environnement + + - Il devrait y avoir un champ de contenu + +- Le rédacteur de contenu `wweb` devrait avoir accès à une enquête pour modifier le contenu des serveurs de développement et de production. + +## Le référentiel Git + +Tout le code est déjà en place - c'est un Atelier pour Tower apres tout. Consultez le **Ansible Workshop Examples** à **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` + + +```html + +

This is a development webserver, have fun!

+{{ dev_content }} + +``` + + +`prod_index.html.j2` + + +```html + +

This is a production webserver, take care!

+{{ prod_content }} + +``` + + +`main.yml` + + +```yaml +[...] +- 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: + +- Assurez-vous que tous les hôtes sont dans le groupe d'inventaire `Webserver`. + +- Définissez une variable `stage` avec la valeur `dev` pour l'inventaire `Webserver`: + + - Ajoutez `stage: dev` à l'inventaire `Webserver` en le plaçant dans le champ **VARIABLES** sous les trois tirets start-yaml. + +- De la même manière, ajoutez une variable `stage: prod` mais cette fois uniquement pour `node2` (en cliquant sur le nom d'hôte) afin qu'elle écrase la variable d'inventaire. + +> **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 + +- Créez un nouveau **modèle de tâche** nommé "Créer un contenu Web" qui + + - cible l'inventaire `Webserver` + + - utilise le Playbook `rhel/apache/webcontent.yml` du projet **Ansible Workshop Examples** + + - Définit deux variables: `dev_content: contenu dev par défaut` et `prod_content: contenu prod par défaut` dans le **CHAMP EXTRA VARIABLES** + + - Utilise les "Workshop Credential" et avec une élévation de privilèges + +- Enregistrez et exécutez 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. + + +```bash +[student@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 >> + +

This is a production webserver, take care!

+prod wweb + + +node1 | CHANGED | rc=0 >> + +

This is a development webserver, have fun!

+dev wweb + + +node3 | CHANGED | rc=0 >> + +

This is a development webserver, have fun!

+dev wweb + +``` + + +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 + +- Ajouter un questionnaire au modèle pour permettre de changer les variables `dev_content` et `prod_content` + +- Ajoutez des autorisations au contenu Web de l'équipe afin que le modèle **Créer du contenu Web** puisse être exécuté par `wweb`. + +- Exécutez le questionnaire en tant qu'utilisateur `wweb` + +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. + + +```bash +[studentansible ~]$ 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": "\n

This is a development webserver, have fun!

\nwerners dev content\n\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](../2.6-workflows/README.fr.md) + +[Cliquez ici pour revenir à l'atelier Ansible pour Red Hat Enterprise Linux](../README.fr.md)