Lab 02 : Inventaire Statique Ansible
Objectifs
Section intitulée « Objectifs »Dans cet atelier, vous allez apprendre à créer et gérer un inventaire Ansible.
Vous découvrirez comment structurer un inventaire statique aux formats INI et
YAML, organiser les hôtes en groupes et sous-groupes, et définir des variables
d’inventaire.
Architecture du TP
Section intitulée « Architecture du TP »Dans cette partie, vous allez apprendre à :
- Créer un inventaire statique au format INI et YAML
- Organiser les hôtes en groupes et sous-groupes
- Définir des variables d’inventaire pour les hôtes et les groupes
Création du lab
Section intitulée « Création du lab »Avant de se lancer dans la création de notre inventaire statique, commençons par créer une infrastructure. Pour cela :
- Créez des AK/SK et exporter les dans les variables d’environnement :
export TF_VAR_access_key_id="xxxxx"export TF_VAR_secret_key_id="xxxxxx"export TF_VAR_region="eu-west-2"- Créer une clé ssh avec cette commande en gardant le nom du fichier proposé :
ssh-keygen -a 64 -t ed25519- Clonez ce dépot git :
git clone https://github.com/outscale-srt20/lab-ansible.git- Créez l’infrastructure avec Terraform
cd lab-ansible.gitterraform initterraform apply- Récupérez l’ip publique de la VM
bastion-tp - Ajouter dans votre configuration ssh les lignes suivantes en utilisant l’adresse IP de votre bastion et le chemin de votre clé SSH :
Host bastion-tp 171.1.1.1 HostName 171.1.1.1 User outscale IdentityFile ~/.ssh/id_ed25519
Host 10.2.* User outscale ProxyJump bastion-tp IdentityFile ~/.ssh/id_ed25519- Vérifiez que vous pouvez vous connecter en SSH aux machines
bastion-tpet10.2.2.10.
Création d’un inventaire statique
Section intitulée « Création d’un inventaire statique »Inventaire au format INI
Section intitulée « Inventaire au format INI »Pour créer un inventaire au format INI, suivez les étapes ci-dessous :
- Créez un fichier nommé
hosts.inidans votre répertoire de projet : - Ajoutez la liste de vos hôtes et groupes :
[webservers]10.2.2.10[dbservers]10.2.2.20- Enregistrez et fermez le fichier.
- Lancez la commande suivante :
ansible-inventory -i hosts.ini --listInventaire au format YAML
Section intitulée « Inventaire au format YAML »Pour créer un inventaire au format YAML, suivez les étapes ci-dessous :
- Créez un fichier nommé
hosts.ymldans votre répertoire de projet : - Ajoutez la liste de vos hôtes et groupes :
webservers: hosts: 10.2.2.10:dbservers: hosts: 10.2.2.20:- Enregistrez et fermez le fichier.
- Lancez la commande suivante :
ansible-inventory -i hosts.yml --listOrganisation des hôtes en groupes
Section intitulée « Organisation des hôtes en groupes »Groupes et sous-groupes
Section intitulée « Groupes et sous-groupes »Les groupes et sous-groupes permettent de mieux organiser et gérer vos hôtes. Vous pouvez créer des groupes logiques pour regrouper des hôtes similaires.
- Dans vos fichiers
hosts.iniouhosts.yml, ajoutez des sous-groupes pour organiser vos hôtes :
[webservers]10.2.2.10[dbservers]10.2.2.20[databases:children]dbserverswebservers: hosts: 10.2.2.10:dbservers: hosts: 10.2.2.20:databases: dbservers- Enregistrez et fermez le fichier.
- Lancez la commande suivante :
ansible-inventory -i hosts.ini --graphDéfinir des variables d’inventaire
Section intitulée « Définir des variables d’inventaire »Variables de groupe et d’hôte
Section intitulée « Variables de groupe et d’hôte »Les variables d’inventaire permettent de personnaliser les configurations pour des groupes ou des hôtes spécifiques.
- Ajoutez des variables pour les groupes et les hôtes dans votre fichier
hostsouhosts.yml:
# hosts[webservers]10.2.2.10[dbservers]10.2.2.20
[webservers:vars]http_port=80[dbservers:vars]db_name=mydatabase[all:vars]ansible_user=outscaleall: vars: ansible_user: outscale
webservers: hosts: 10.2.2.10: vars: http_port: 80dbservers: hosts: 10.2.2.20: vars: db_name: mydatabase- Enregistrez et fermez le fichier.
- Lancez la commande suivante :
ansible-inventory -i hosts.ini --graph --varsValidation du TP
Section intitulée « Validation du TP »Pour vérifier que votre inventaire est correctement configuré, exécutez une commande simple sur tous les hôtes pour voir si les variables et les groupes sont pris en compte :
ansible -m ping -i hosts.ini allVous devriez voir une sortie détaillant les variables et les groupes pour chaque hôte.
Challenge
Section intitulée « Challenge »Ajoutez des variables dans vos inventaires aux niveaux des hosts.