Table des matières

Introduction

La solution Ansible Tower de Red Hat est le meilleur moyen de mettre Ansible en œuvre dans votre entreprise. Les équipes peuvent procéder à l'automatisation des tâches en centralisant et en contrôlant l'infrastructure Ansible au moyen d'une interface utilisateur, de contrôles d'accès basés sur les rôles, de la planification des tâches et de la gestion graphique des inventaires.

Qui plus est, l'interface de programmation d'application (API) REST et l'interface en ligne de commande (CLI) facilitent l'intégration aux outils et processus existants.

Automatisation pour tous

Ansible Tower permet à toutes les équipes de l'entreprise d'utiliser l'automatisation et d'y accéder, quelles que soient leurs compétences ou leurs aptitudes.

La solution Ansible Tower est disponible en 2 éditions : Standard et Premium. L'une d'entre elles sera donc forcément adaptée aux besoins de votre entreprise.

https://www.ansible.com/products/tower/editions

Tableau de bord

L'ensemble de votre environnement est visible dès l'instant où vous vous connectez :

Vous pouvez également régler vos paramètres pour afficher certaines tâches ou certains calendriers.

Informatique en libre-service

Ansible Tower offre la possibilité de configurer des variables et des contrôles d'accès pour que les utilisateurs puissent démarrer des playbooks en fonction de leur rôle.

Un mode portail simplifié et des fonctions de questionnaire permettent aux administrateurs informatiques de déléguer l'exécution de tâches d'automatisation à des utilisateurs des équipes métier. Les responsables de l'assurance qualité peuvent par exemple créer leurs propres environnements de test, tandis que le service clientèle peut démarrer une démonstration.

Pré-requis

Avant de commencer à installer Ansible Tower, vous devez disposer de rhel-7-server-rpms, rhel-7-server-extras-rpms et EPEL.

Installation et configuration EPEL

[root@devops]$ yum install epel-release

Installation Ansible

[root@devops]$ yum install -y ansible

Installation

Téléchargez la dernière version de Ansible Tower.

[root@devops]$ wget https://releases.ansible.com/ansible-tower/setup/ansible-tower-setup-latest.tar.gz
[root@devops]$ tar -xzvf ansible-tower-setup-latest.tar.gz

Configuration Pre-installation

Ansible Tower utilise un playbook pour se déployer. En tant que tels, les paramètres de configuration ou les variables de groupe sont stockés dans un fichier d'inventaire.

[root@devops]$ cd ansible-tower-setup-3.3.3.1/
[root@devops]$ vi inventory
 
[tower]
localhost ansible_connection=local
 
[database]
 
[all:vars]
admin_password='admin'
 
pg_host=''
pg_port=''
 
pg_database='awx'
pg_username='awx'
pg_password='awxadmin'
 
rabbitmq_username=tower
rabbitmq_password='awxadmin'
rabbitmq_cookie=cookiemonster
 
# Isolated Tower nodes automatically generate an RSA key for authentication;
# To disable this behavior, set this value to false
# isolated_key_generation=true

Lancement du Setup

[root@devops]$ ./setup.sh
Using /etc/ansible/ansible.cfg as config file
/root/ansible-tower-setup-3.3.3-1/inventory did not meet host_list requirements, check plugin documentation if this is unexpected
/root/ansible-tower-setup-3.3.3-1/inventory did not meet script requirements, check plugin documentation if this is unexpected
 [WARNING]: Could not match supplied host pattern, ignoring: instance_group_*
 
 
PLAY [tower:database:instance_group_*] ********************************************************************************************************
 
TASK [check_config_static : Ensure expected variables are defined] ****************************************************************************
 
....
 
PLAY [Install Tower isolated node(s)] *********************************************************************************************************
skipping: no hosts matched
 
PLAY RECAP ************************************************************************************************************************************
localhost                  : ok=140  changed=70   unreachable=0    failed=0   
 
The setup process completed successfully.
Setup log saved to /var/log/tower/setup-2019-01-02-13:24:43.log

Une fois l'installation terminée, se rendre à l'adresse https://<ip_du_server>/

Une fois que vous êtes connecté, vous devez configurer la licence. La licence Tower est stockée dans un fichier. Il vous suffit donc de parcourir le fichier et d’en accepter les termes. Si vous n’avez pas de licence, vous pouvez faire une demande ici.

Une fois cette étape réalisée, vous voici devant le dashboard d'Ansible Tower.

Administration

Users

Un utilisateur (user) est une personne ayant accès à Tower avec les autorisations et les informations d'identification associées. Accédez à la page Utilisateurs en cliquant sur l'icône Utilisateurs (Users) dans la barre de navigation de gauche.

La page Utilisateurs vous permet de gérer tous les utilisateurs du Tower.

Créer un utilisateur

Pour créer un nouvel utilisateur:

  1. Cliquez sur le bouton “Ajouter” pour ouvrir la boîte de dialogue “Créer un utilisateur”.
  2. Entrez les détails appropriés dans les champs obligatoires.

Trois types d’utilisateur tour peuvent être attribués:

Note:

L'utilisateur initial (généralement «admin») créé par le processus d'installation de Tower est un superutilisateur. Un superutilisateur doit toujours exister. Pour supprimer le compte utilisateur «admin», vous devez d'abord créer un autre compte superutilisateur.

Types d'utilisateurs

Une fois qu'un utilisateur a été créé, vous pouvez facilement afficher les autorisations et les informations sur le type d'utilisateur en regardant à côté de son nom d'utilisateur dans l'écran de présentation de l'utilisateur.

Si le compte d'utilisateur est associé à une méthode d'authentification au niveau de l'entreprise (telle que SAML, RADIUS ou LDAP), le type d'utilisateur peut ressembler à ceci:

Si le compte d'utilisateur est associé à une méthode d'authentification sociale, le type d'utilisateur ressemblera à ceci:

Utilisateurs - Organisations

Ceci affiche la liste des organisations dont cet utilisateur est membre. Cette liste peut faire l'objet d'une recherche par nom d'organisation ou par description. L'appartenance à une organisation ne peut pas être modifiée à partir de ce panneau d'affichage.

Utilisateurs - Teams

Ceci affiche la liste des organisations dont cet utilisateur est membre. Cette liste peut faire l'objet d'une recherche par nom d'organisation ou par description. L'appartenance à une organisation ne peut pas être modifiée à partir de ce panneau d'affichage.

Utilisateurs - Autorisations

L'ensemble des autorisations attribuées à un utilisateur (contrôles d'accès basés sur les rôles) permettent de lire, de modifier et d'administrer des projets, des inventaires, des job templates et d'autres éléments du Tower.

Cet écran affiche une liste des rôles actuellement attribués à l'utilisateur sélectionné. Vous pouvez les trier et les rechercher par nom, type ou rôle.

Teams

Une équipe (teams) est une sous-division 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 systèmes de contrôle d'accès basés sur les rôles et de déléguer des 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.

Vous pouvez créer autant d'équipes d'utilisateurs que cela convient à votre organisation. Des autorisations peuvent être attribuées à chaque équipe, comme avec les utilisateurs.

Accédez à la page “Teams” en cliquant sur l'icône Teams (Équipes) dans la barre de navigation de gauche.

Organisation

Une organisation est un ensemble logique d'utilisateurs, d'équipes, de projets et d'inventaires. Il s'agit de l'objet de niveau le plus élevé dans la hiérarchie des objets Tower.

Dans la barre de navigation de gauche, cliquez sur l'icône Organisations.

Note:

Ansible Tower crée automatiquement une organisation par défaut. Les utilisateurs de Tower avec une licence gratuite ne disposent que de l'organisation par défaut et ne doivent pas la supprimer. Les utilisateurs d'anciennes versions de Tower (antérieures à 2.2) ne verront pas cette organisation par défaut.

Une organisation par défaut a été créée automatiquement et est disponible pour tous les utilisateurs de Ansible Tower. Il peut être utilisé tel quel ou modifié ultérieurement si nécessaire.

Note:

Si vous utilisez Ansible Tower avec une licence de base, vous devez utiliser l'organisation par défaut. Seules les licences Enterprise ou Premium Tower ont la possibilité d'ajouter de nouvelles organisations au-delà des valeurs par défaut.

Pour modifier ultérieurement l’organisation par défaut, développez ses ‘Propriétés’ en cliquant sur le bouton “Modifier” et en entrant les détails appropriés, puis enregistrez vos modifications.

Ajouter d'un utilisateur

Développez les détails des utilisateurs en cliquant sur l'onglet Utilisateurs de l'organisation par défaut que vous venez de sauvegarder (pas dans la barre de navigation de gauche).

Pour ajouter un utilisateur, cliquez sur le bouton “Ajouter”.

Étant donné que d'autres utilisateurs n'ont pas encore été créés, l'utilisateur «admin» est le seul utilisateur répertorié. Cochez la case en regard de l'utilisateur “admin” pour la sélectionner pour cette organisation.

Cela élargit la partie inférieure de l'assistant pour attribuer des rôles à l'utilisateur sélectionné.

Cliquez dans le menu déroulant pour sélectionner un ou plusieurs rôles pour cet utilisateur.

Note:

Pour obtenir de l'aide sur la signification des rôles, cliquez sur le bouton Clé. Pour plus d'informations, reportez-vous à la section Rôles du guide officiel.

Dans cet exemple, l'utilisateur admin a été sélectionné et s'est vu attribuer le rôle admin dans cette organisation.

Une fois terminé, cliquez sur “Enregistrer”. Une fois l’enregistrement effectué, les informations d’utilisateur de l’organisation deviennent accessibles et le nouvel utilisateur que vous avez créé apparaît dans la liste avec ces nouveaux rôles.

Créer un nouvel inventaire

Un inventaire est une collection d'hôtes gérée par Ansible Tower. Les inventaires sont attribués aux organisations, tandis que les autorisations permettant de lancer des playbooks par rapport aux inventaires sont contrôlées au niveau de l'utilisateur et/ou de l'équipe.

Pour passer en revue les inventaires existants:

  1. Cliquez sur l'icône Inventories dans la barre de navigation de gauche.
  2. Cliquez sur le bouton Ajouter et sélectionnez Inventaire dans la liste du menu déroulant.

Groupes et hôtes

Note:

Notez que les inventaires sont divisés en groupes et hôtes.

Un groupe peut représenter un environnement particulier (par exemple, «Centre de données 1» ou «Stage Testing»), un type de serveur (par exemple, «Serveurs d'applications» ou «Serveurs de base de données») ou toute autre représentation de votre environnement.

Les groupes et les hôtes appartenant à l'inventaire de démonstration sont affichés dans les onglets Groupes et Hôtes, respectivement.

Dans l'onglet “Groupes”, cliquez sur le bouton “Ajouter” pour ajouter des groupes à l'inventaire.

De même, dans l'onglet “Hôtes”, cliquez sur le bouton “Ajouter” pour ajouter des hôtes aux groupes.

Attention:

Avant Ansible Tower 2.2, les hôtes ne pouvaient pas être ajoutés à l'inventaire des serveurs Web avant d'ajouter un groupe. Si vous utilisez une version plus ancienne de Tower, cliquez sur le bouton “Plus” au-dessus de la section “Groupes” pour ajouter un groupe avant d’ajouter un hôte.

Informations d'authentification

Les informations d'authentification permettent à l'utilisateur du Tower de lancer des playbooks Ansible, pouvant inclure des mots de passe et des clés SSH, auprès des hôtes de l'inventaire.

Vous pouvez également demander à l'utilisateur du Tower de saisir un mot de passe ou une phrase clé lors du lancement du playbook à l'aide de la fonctionnalité d'informations d'identification de Tower.

Créez une nouvelle information d'identification en cliquant sur l'icône “Credentials” dans la barre de navigation de gauche.

Note:

Lorsque vous configurez des informations d'identification supplémentaires, gardez à l'esprit que l'utilisateur que vous attribuez doit avoir un accès “root” ou pouvoir utiliser SSH pour se connecter à la machine hôte.

Cliquez sur le nom “ansible” ou sur le bouton Modifier pour vérifier ou modifier ces informations.

Mise en place d'un projet

Un projet est une collection logique de playbooks Ansible, représentée dans Tower.

Vous pouvez gérer les playbooks et les répertoires les hébergeant en les plaçant manuellement sous le chemin de base du projet sur votre serveur Tower ou 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.

Note:

Il est recommandé d'utiliser autant que possible le contrôle de source pour gérer vos playbooks. Ce type de bonnes pratiques permet de traiter votre infrastructure comme un code et est conforme aux idéaux DevOps.

Pour examiner les projets existants ou en créer un nouveau, cliquez sur l'icône “Projets” dans la barre de navigation de gauche.

Mettez à jour le projet de démonstration basé sur SCM en cliquant sur le bouton de synchronisation situé sous les actions disponibles du projet.

Note:

Veuillez noter que immédiatement après avoir ajouté une nouvelle configuration de projet pour utiliser le contrôle de source, une «synchronisation» démarre automatiquement et extrait les détails du projet à partir du serveur de contrôle de source configuré.

Notez que le point d'état situé en regard du nom du projet, de la révision et des informations relatives à la dernière exécution est mis à jour une fois la synchronisation terminée.

Templates

Un “Job template” est une définition et un ensemble de paramètres permettant d'exécuter un travail Ansible. Les “Job template” sont utiles pour exécuter le même travail plusieurs fois. Les “Job template” encouragent également la réutilisation du contenu du playbook Ansible et la collaboration entre les équipes. Bien que l'API REST permette l'exécution directe des travaux, Tower requiert la création préalable d'un “Job template”.

Le menu template ouvre une liste de “Job template” actuellement disponibles. La liste des “Job template” est triée par ordre alphabétique par nom, mais vous pouvez effectuer une recherche selon différents champs et attributs. La liste vous permet également de lancer, copier et supprimer un “Job template”. Avant de supprimer un “Job template”, assurez-vous qu'il n'est pas utilisé dans un “Workflow template”.

Annexe

https://docs.ansible.com/ansible-tower/