From 04c80cd3ca7fe590088ae25c48195c3a2fe3559b Mon Sep 17 00:00:00 2001 From: Thomas Constans Date: Fri, 25 Sep 2020 13:51:32 +0200 Subject: [PATCH] awx: initial commit --- Readme.md | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 179 insertions(+) create mode 100644 Readme.md diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..0ee220e --- /dev/null +++ b/Readme.md @@ -0,0 +1,179 @@ +# AWX / TOWER + + +## Prérequis + +Nous allons publier quelques playbook précédemment mis au point sur git, afin de pouvoir les utiliser avec awx. + +Sur la machine pilote: + +git clone https://CHANGEME:CHANGEME@infra.opendoor.fr/git/tom/CHANGEME.git + +cd CHANGEME + +mkdir VOTREPRENOM + +cd VOTREPRENOM + +à partir de ce moment là, toute modification doit être ajoutée, commitée et poussée vers le dépôt externe: + +vim test.yml + +git add test.yml + +git commit -m "rajout tâche foobar" + +git push + + + +## Présentation de l'outil + +### Pratique +Se connecter sur http://awx.opendoor.fr avec les informations suivantes: + +login: votre login CHANGEME + +mot de passe: CHANGEME + + +Aller dans Ressources -> Modèle, Choisissez une tâche et lancez-la en cliquant sur l'icône en forme de fusée. + +### Performance + +Vous avez exécuté un playbook ansible sans toucher à la ligne de commande ! + +## Installation et configuration + +Installer awx en suivant la documentation adéquate + +Vérifier le bon fonctionnement des différents containers + +Se connecter à l'interface avec le compte admin / password + +## Connexion et découverte de l'interface + + +### Pratique + +Parcourir les éléments lister à droite, faire une rapide présentation, supprimer les données de démo + +Quand on arrive à "utilisateur": changer le mot de passe admin + + +On notera la présence de tâches planifiées dédiées à la maintenance de la plateforme, mise à jour des dépôts, etc. + + +### Performance + +Le mot de passe a été changé + +## Gestion des utilisateurs et des organisations + +Ajouter une organisation + +Ajouter une équipe "sysadmin" et une équipe "dev" + +Créer 2 comptes, un dans chaque équipe + + +## Configuration des mécanismes d'authentification + +Créer une "nouvelle information d'authentification" avec les caractéristiques suivantes: + * nom ssh_pass_centos + * organisation: NOM DE L'ORGANISATION + * Type d'information: Machine + * Nom d'utilisateur: CHANGEME + * Mot de passe: le mot de passe du compte + +Répéter l'opération en utilisant cette fois ci la paire de clé publique / privée que l'on a mise au point en début de formation. + +Enfin, créer une "nouvelle information d'authentification" de type "Contrôle de source" avec les informations suivantes! + * nom d'utilisateur civadis + * mot de passe: Yohb9wagae-ghah7Eech + + +## Gestion des projets + +Créer un projet utilisant le SCM "git" et l'adresse suivante: https://infra.opendoor.fr/git/tom/civadis.git +Avec les informations d'authenfication précédemment créées + +Il peut être intéressant d'activer "mettre à jour révision au lancement" avec un "expiration du délai d'attente" un peu plus important en production. + + +## Configuration des inventaires + +Rajouter un inventaire **non smart** dans lequel on rajoutera notre / nos machines. + + +## Gestion des tâches + +À partir du //projet//, dans **modèle de tâche** + +Créer ensuite un modèle de tâche (essayer de faire le // entre options de ansible-playbook et/ou d'ansible et les différentes parties du formulaire) + +Paramètre du modèle de tâche: + * type de tâche: exécuter + * inventaire: celui que vous avez créé précédemment + * playbook: choisissez le playbook que vous voulez dans la liste + * information d'authentification: ssh_pass_centos + * options: + * cocher "activer l'élevation de privilèges" + * cocher "utiliser le cache des faits" + +## Exécution d'une tâche + +A partir du modèle lancer l'exécution d'une tâche en cliquant sur la petite fusée. + +Examiner l'avancement de l'exécution de la tâche. + +En cas d'erreur, corriger et relancer jusqu'à ce que la tâche soit exécutée correctement. + +On retrouve l'historique de l'exécution des tâche dans Affichage -> tâches (avec la possibilité de relancer une tâche (icône fusée ) et d'obtenir des détails sur son exécution (icône de statut) + + +## Gestion de la délégation + +Objectif: déléguer l'exécution des tâches de notre projet à un utilisateur sans que celui-ci ait besoin: + * de connaître la syntaxe yaml + * de maitriser la ligne de commande et l'utilisation de ansible-playbook + * de connaître les informations de connexion + * de craindre de travailler sur la mauvaise machine ou de faire d'autres erreurs de ce genre + +Créer une équipe, + +Créer un utilisateur standard membre de cette équipe + +Rajouter les permissions afin que l'utilisateur puisse exécuter (il est plus simple de le faire à partir de l'utilisateur ou de l'équipe) + * projet + * tâche + + +## Workflow + + +Les workflow sont un moyen de chaîner des tâches entre elles + +Créer un modèle de tâche de type "workflow" + +Associez là à votre inventaire et votre organisation + +Enregistrer + +Accéder au visualisateur de workflow + +Cliquer sur le bouton "Démarrer" + +Créer une première tâche de type "Sync_projet" + +Cliquer sur le plus pour rajouter un bloc de type "modèle" et sélectionner l'une des tâches mise au point + +Répéter la précédente opération, + +On obtient un workflow qui va mettre à jour le projet (récupérer la dernière version des playbooks publiés sur git) puis exécuter les 2 tâches. + +Une fois le visualisateur fermé, vous pouvez exécuter le workflow comme n'importe quelle tâche. + + +## Conclusion +