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.