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