ansible
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| ansible [2016/06/12 14:10] – [Les playbooks] cecile | ansible [2024/06/13 18:54] (Version actuelle) – changement section vraiment utile en example utile gde | ||
|---|---|---|---|
| Ligne 3: | Ligne 3: | ||
| =====Préambule===== | =====Préambule===== | ||
| + | Ansible est un outil permettant d' | ||
| + | Pour cela, il faut : | ||
| * une machine de contrôle (ex: laptop) | * une machine de contrôle (ex: laptop) | ||
| * une machine à configurer (ex: serveur) | * une machine à configurer (ex: serveur) | ||
| + | Remarque : la machine de contrôle peut être la machine à configurer | ||
| =====Installation d' | =====Installation d' | ||
| Ligne 22: | Ligne 24: | ||
| * python-dev | * python-dev | ||
| * libffi-dev | * libffi-dev | ||
| + | * libssl-dev | ||
| * ou tout autre paquet manquant mentionné par pip durant l' | * ou tout autre paquet manquant mentionné par pip durant l' | ||
| - | =====Installation des dépendances (sur la machine à controller)===== | + | =====Installation des dépendances (sur la machine à contrôler)===== |
| * Sur la machine distante, il y a quelques dépendances à installer, mais pas Ansible: | * Sur la machine distante, il y a quelques dépendances à installer, mais pas Ansible: | ||
| Ligne 67: | Ligne 70: | ||
| * si on utilise su, on ajoute < | * si on utilise su, on ajoute < | ||
| * si on utilise sudo, on ajoute < | * si on utilise sudo, on ajoute < | ||
| + | |||
| + | Si l'on souhaite que ansible demande le mot de passe ssh (dans le cas ou la clé publique n'est pas présent sur le serveur distant), on peut ajouter l' | ||
| Super astuce, pour mettre à jour un paquet sur plein de machines (ex: erreur de sécu sur apache) : < | Super astuce, pour mettre à jour un paquet sur plein de machines (ex: erreur de sécu sur apache) : < | ||
| Ligne 72: | Ligne 77: | ||
| =====Les playbooks===== | =====Les playbooks===== | ||
| - | Documentation officielle : http:// | + | Documentation officielle : https:// |
| - | Le playbook permet de réunir les tâches de configuration au sein d' | + | Le playbook permet de réunir les tâches de configuration au sein d' |
| Ligne 126: | Ligne 131: | ||
| Documentation : http:// | Documentation : http:// | ||
| - | **Solution 1 :** | ||
| - | < | ||
| - | tasks: | ||
| - | - name: installer la vache qui parle | ||
| - | apt: name=cowsay state=absent | ||
| - | - name: créer le magicien magic | ||
| - | user: name=magicsystem | ||
| - | </ | ||
| **Exercice 2 :** | **Exercice 2 :** | ||
| Ligne 142: | Ligne 139: | ||
| * Indice : la démarche est de demander à Ansible de copier un fichier local vers la machine à configurer | * Indice : la démarche est de demander à Ansible de copier un fichier local vers la machine à configurer | ||
| * Indice : débrouillez-vous pour trouver quel module utiliser <3 (vérifier en se connectant en SSH) | * Indice : débrouillez-vous pour trouver quel module utiliser <3 (vérifier en se connectant en SSH) | ||
| + | |||
| + | ====Les variables==== | ||
| + | |||
| + | On veut désormais afficher un nom dans le message d' | ||
| + | |||
| + | On avait une section tasks, on va ajouter une sections vars, et on va appeller la variable grace à la syntaxe " | ||
| + | |||
| + | < | ||
| + | - hosts: mamachine.example.com | ||
| + | vars: | ||
| + | - wizard_name: | ||
| + | - rainbow_duration: | ||
| + | tasks: | ||
| + | - name: Réalise un arc-en-ciel magique | ||
| + | rainbow: color=purple duration=" | ||
| + | - name: Vérifie que le magicien est réveillé | ||
| + | wizard: state=up name=" | ||
| + | </ | ||
| + | |||
| + | Note : les moustaches correspondent à la syntaxe de jinja2, cf http:// | ||
| + | |||
| + | Exercice : En reprenant l' | ||
| + | |||
| + | ====Les templates==== | ||
| + | |||
| + | On peut aussi utiliser des variables dans les fichiers qu'on copie (module copy de l' | ||
| + | |||
| + | Documentation : http:// | ||
| + | |||
| + | Exercice : Reprendre l' | ||
| + | |||
| + | ====Les " | ||
| + | |||
| + | Une partie des variables sont pré-définies par ansible, elle s' | ||
| + | |||
| + | La liste est ici : http:// | ||
| + | |||
| + | Exercice: indiquer l' | ||
| + | |||
| + | |||
| + | =====Commandes utiles===== | ||
| + | |||
| + | < | ||
| + | ansible-playbook --ask-become-pass --check --diff -l slash.faimaison.net -t celutz, | ||
| + | </ | ||
| + | * Demande le mot de passe du host : < | ||
| + | * Limite le déploiement au host renseigné : < | ||
| + | * Concerne les tags renseignés : < | ||
| + | |||
| + | ====Options utiles==== | ||
| + | |||
| + | * Tester le playbook : < | ||
| + | * Lancer étape par étape de manière à choisir d' | ||
| + | * Démarrer sur une tâche précise : < | ||
| + | |||
| + | |||
| + | Voici un autre exemple pour commencer: | ||
| + | [[ansible: | ||
| + | |||
| + | ==== example utile ==== | ||
| + | |||
| + | l' | ||
| + | --limit pour préciser un serveur spécifique (-l est la forme diminué). | ||
| + | |||
| + | < | ||
| + | |||
ansible.1465740623.txt.gz · Dernière modification : 2016/06/12 14:10 de cecile
