relecture

This commit is contained in:
gcolpart 2017-03-01 19:40:54 +01:00
parent 9a042e4257
commit 8773d813f3

View file

@ -6,24 +6,23 @@ categories: automation
* Documentation : <http://docs.ansible.com/> * Documentation : <http://docs.ansible.com/>
[Ansible](https://www.ansible.com/) est un outil d'automatisation de configuration et gestion de serveurs : il permet le déploiement de logiciels et l'execution de tâches via une connexion SSH. [Ansible](https://www.ansible.com/) est un outil d'automatisation de configuration et gestion de serveurs : il permet le déploiement de logiciels et l'exécution de tâches via une connexion SSH.
Ansible fonctionne sans agent sur les serveurs (*agent-less*) et selon le concept d'**[idempotence](https://fr.wikipedia.org/wiki/Idempotence)** : on décrit l'état d'un serveur et des actions seront exécutées dans le but de rendre le serveur conforme à cette description. Ansible fonctionne sans agent sur les serveurs (*agent-less*) et selon le concept d'**[idempotence](https://fr.wikipedia.org/wiki/Idempotence)** : on décrit l'état d'un serveur et des actions seront exécutées dans le but de rendre le serveur conforme à cette description. On pourra relancer Ansible plusieurs fois, l'état final reste le même : seules les actions nécessaires seront exécutées.
On pourra relancer Ansible plusieurs fois, l'état final reste le même : seules les actions nécessaires seront exécutées.
## Installation
Ansible peut exécuter des actions sur des serveurs distants sous : Ansible peut exécuter des actions sur des serveurs distants sous :
* *Debian 6* et supérieur (nécessite uniquement _Python_ ce qui est le cas par défaut) * *Debian 6* et supérieur : `# apt-get install python-apt dbus sudo`
* *Debian 4 / 5* : voir [#AnsiblesurdesvieillesversionsDebian] * *Debian 4 / 5* : utiliser le module [raw](https://docs.ansible.com/ansible/raw_module.html) d'Ansible
* *OpenBSD* : voir **[pré-requis](https://wiki.evolix.org/HowtoAnsible#openbsd)** * *OpenBSD* : voir **[pré-requis](https://wiki.evolix.org/HowtoAnsible#openbsd)**
* *FreeBSD* : TODO * *FreeBSD*
## Installation
Nous utilisons actuellement Ansible 2.0.2 (disponible via <http://pub.evolix.net/jessie/)> sous Debian 8 : Nous utilisons actuellement Ansible 2.0.2 (disponible via <http://pub.evolix.net/jessie/)> sous Debian 8 :
~~~ ~~~
# apt install python-apt dbus sudo
# apt install --allow-unauthenticated ansible=2.0.2.0-1~bpo8+1 # apt install --allow-unauthenticated ansible=2.0.2.0-1~bpo8+1
~~~ ~~~
@ -73,7 +72,7 @@ Options utiles pour [ansible-playbook](https://manpages.debian.org/cgi-bin/man.c
## Les éléments d'Ansible ## Les éléments d'Ansible
L'utilisation d'Ansible se fait principalement avec un **playbook**. C'est l'élément clé, qui peut suffir à réaliser des tâches utiles. Il s'agit d'un fichier qui décrit la succession d'une ou plusieurs séries d'actions (des *plays*). Chaque **play** indiques quelques réglages généraux comme le groupe de serveurs concernés, la manière de devenenir administrateur, quels fichiers de variables charger L'utilisation d'Ansible se fait principalement avec un **playbook**. C'est l'élément clé, qui peut suffire à réaliser des tâches utiles. Il s'agit d'un fichier qui décrit la succession d'une ou plusieurs séries d'actions (des *plays*). Chaque **play** indique quelques réglages généraux comme le groupe de serveurs concernés, la manière de devenir administrateur, quels fichiers de variables charger et surtout des actions.
Un playbook va ensuite dérouler des _actions_ qui seront organisées en _roles_, _tasks_ et _handlers_. Un playbook va ensuite dérouler des _actions_ qui seront organisées en _roles_, _tasks_ et _handlers_.
@ -87,7 +86,7 @@ Les actions peuvent être listées dans la partie **tasks** du playbook et peuve
Les **handlers** sont des actions qui ne sont exécutées que si une autre action en a fait la demande, via l'attribut `notify`. Les **handlers** sont des actions qui ne sont exécutées que si une autre action en a fait la demande, via l'attribut `notify`.
Lorsqu'on a besoin d'utiliser des fichiers ou _templates_ à copier, des variables avec des valeurs par défaut, des handlers… on peut organiser tout cela dans un **role** en respectant (idéalement) une structure conventionnelle : Lorsqu'on a besoin d'utiliser des fichiers ou _templates_ à copier, des variables avec des valeurs par défaut, des handlers… on peut organiser tout cela dans un **role** en respectant la structure conventionnelle suivante :
~~~ ~~~
foo foo
@ -125,7 +124,7 @@ Exemple de playbook très simple :
# vim:ft=ansible: # vim:ft=ansible:
~~~ ~~~
Un playbook plus complexe : Un playbook plus complexe (avec un seul "play") :
~~~{.yaml} ~~~{.yaml}
--- ---
@ -678,7 +677,7 @@ ou
* Installer package python * Installer package python
<https://docs.ansible.com/ansible/raw_module.html>
(bzip2, php, … selon services à installer) (bzip2, php, … selon services à installer)
@ -1038,9 +1037,9 @@ Il est possible aussi d'accéder aux variables d'environnement shell :
### OpenBSD ### OpenBSD
Voici les étapes nécéssaires à l'utilisation d'Ansible sur des serveurs OpenBSD Voici les étapes nécessaires à l'utilisation d'Ansible sur des serveurs OpenBSD.
Installer `Python` Installer `Python` :
~~~ ~~~
# export PKG_PATH=http://ftp.eu.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(uname -p)/ # export PKG_PATH=http://ftp.eu.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(uname -p)/
@ -1048,7 +1047,7 @@ Installer `Python`
# ln -sf /usr/local/bin/python2.7 /usr/local/bin/python # ln -sf /usr/local/bin/python2.7 /usr/local/bin/python
~~~ ~~~
Surcharger la variable `ansible_python_interpreter` dans le fichier “inventory” et surcharger la variable `ansible_python_interpreter` dans le fichier _inventory_ :
~~~ ~~~
[openbsd] [openbsd]