Outils pour utilisateurs

Outils du site


ansible

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
ansible [2016/06/12 14:22] – [Les playbooks] cecileansible [2021/01/31 14:09] (Version actuelle) tonio
Ligne 3: Ligne 3:
 =====Préambule===== =====Préambule=====
  
 +Ansible est un outil permettant d'installer et de configurer des ordinateurs automatiquement.
 +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'Ansible (sur la machine de contrôle)===== =====Installation d'Ansible (sur la machine de contrôle)=====
  
Ligne 22: Ligne 24:
         * python-dev         * python-dev
         * libffi-dev         * libffi-dev
 +        * libssl-dev
         * ou tout autre paquet manquant mentionné par pip durant l'installation         * ou tout autre paquet manquant mentionné par pip durant l'installation
  
  
-=====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 <code> --become --become-method=su --ask-become-pass </code>   * si on utilise su, on ajoute <code> --become --become-method=su --ask-become-pass </code>
   * si on utilise sudo, on ajoute <code> --become --become-method=sudo --ask-become-pass </code>   * si on utilise sudo, on ajoute <code> --become --become-method=sudo --ask-become-pass </code>
 +
 +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'option ''« -k »'' 
  
 Super astuce, pour mettre à jour un paquet sur plein de machines (ex: erreur de sécu sur apache) : <code> -m apt -a "name=apache2 state=latest update_cache=yes" </code> qui fait un apt update suivit d'un apt install. Super astuce, pour mettre à jour un paquet sur plein de machines (ex: erreur de sécu sur apache) : <code> -m apt -a "name=apache2 state=latest update_cache=yes" </code> qui fait un apt update suivit d'un apt install.
Ligne 72: Ligne 77:
 =====Les playbooks===== =====Les playbooks=====
  
-Documentation officielle : http://docs.ansible.com/ansible/playbooks_intro.html+Documentation officielle : https://docs.ansible.com/ansible/2.8/modules/modules_by_category.html
  
 Le playbook permet de réunir les tâches de configuration au sein d'un fichier. Le playbook permet de réunir les tâches de configuration au sein d'un fichier.
Ligne 126: Ligne 131:
 Documentation : http://docs.ansible.com/ansible/list_of_all_modules.html Documentation : http://docs.ansible.com/ansible/list_of_all_modules.html
  
-**Solution 1 :** 
-<code>  
-tasks: 
-    - name: installer la vache qui parle 
-      apt: name=cowsay state=absent 
-    - name: créer le magicien magic 
-      user: name=magicsystem  
-</code> 
  
 **Exercice 2 :** **Exercice 2 :**
Ligne 180: Ligne 177:
  
 Exercice: indiquer l'IPv4  de la machine dans le message de bienvenue MOTD. Exercice: indiquer l'IPv4  de la machine dans le message de bienvenue MOTD.
 +
 +
 +=====Commandes utiles=====
 +
 +<code>
 +ansible-playbook --ask-become-pass --check --diff -l slash.faimaison.net -t celutz,nginx playbook-fma.yml -vvv
 +</code>
 +  * Demande le mot de passe du host : <code>--ask-become-pass</code>
 +  * Limite le déploiement au host renseigné : <code>-l <host></code>
 +  * Concerne les tags renseignés : <code>-t <tags></code>
 +
 +====Options utiles====
 +
 +  * Tester le playbook : <code>--check --diff</code>
 +  * Lancer étape par étape de manière à choisir d'exécuter une tâche précise ou non : <code>--step</code>
 +  * Démarrer sur une tâche précise : <code>--start-at-task="install packages"</code>
 +
 +
 +Voici un autre exemple pour commencer:
 +[[ansible:pourcommencer|ansible:pourcommencer]]
ansible.1465741332.txt.gz · Dernière modification : 2016/06/12 14:22 de cecile