Commit fec75022 authored by Vincent Mazenod's avatar Vincent Mazenod
Browse files

ansible

parent 3afb06ac
......@@ -23,6 +23,8 @@
* marche bien en python 3
* virtualenv
* [ansible docs](https://docs.ansible.com/)
## ansible
......@@ -42,50 +44,119 @@
## terminologie
* **mgmt node** (machine pilote) machine surlaquelle ansible est installé et responsable de la configuration de toutes les machines gérées.
* **Inventory** (inventaire) fichier contenant les ip de tous les serveurs à configurer
* **Playbook** gère la configuration à déployer sur chaque serveur
* **Task** fichier où sont définies les actions réalisées par le playbook
* **Module** actions plus ou moins complexe utilisables à partir des **tasks**. ansible possède de [nombreux modules natifs](https://docs.ansible.com/ansible/latest/modules/modules_by_category.html). Il est possible d'écrire ses propres modules.
* **Role** permet d'organiser les playbooks en parties claires et réutilisables
* **Play** est l'exécution d'un playbook sur un serveur
* **Facts** information collectée par ansible sur le système du serveur à configurer
* **Handlers** similaire aux **tasks** mais appelable à partir d'une **task** (redémarrage de service par exemple)
ansible all --inventory-file=inventory.ini --module-name ping -u root
* modules
* task
* register
* debug
* loop
* set_fact
* pre_task
* roles
* playbook
* ligne de commande
* --check --diff
* verbosité
* tags
* variable (see debug task)
* hierarchie
* from env ou Vault
* acces dynamique
* ansible-vault : utiliser vault
* https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html
* plugin
* callback
* filter
* lookup
* modules ansible utile
* pexpect
* remote roles
* skeleton https://github.com/mrjk/ansible-skel
* **inventory** (inventaire) fichier contenant les ip de tous les serveurs à configurer
* **playbook** gère la configuration à déployer sur chaque serveur
* **task** fichier où sont définies les actions réalisées par le playbook
## terminologie
* **module** actions plus ou moins complexe utilisables à partir des **tasks**. ansible possède de [nombreux modules natifs](https://docs.ansible.com/ansible/latest/modules/modules_by_category.html). Il est possible d'écrire ses propres modules.
* **role** permet d'organiser les playbooks en parties claires et réutilisables
## terminologie
* **play** est l'exécution d'un playbook sur un serveur
* **facts** information collectée par ansible sur le système du serveur à configurer
* **handlers** similaire aux **tasks** mais appelable à partir d'une **task** (redémarrage de service par exemple)
## inventory
* fichier texte au format *ini*
* organiser par groupes
* [inventory docs](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html)
```ini
localhost ansible_connection=local
[webservers]
jumper ansible_port=5555 ansible_host=192.0.2.50
bar.example.com ansible_user=limosadm
[dbservers]
one.example.com
two.example.com
www[03:10].example.com
```
## ansible / ad-hoc command
```
$ ansible all --inventory-file=inventory.ini \
--module-name ping -u root
$ ansible atlanta -a "/usr/bin/foo" \
-u username --become --become-user \
otheruser --ask-become-pass
```
* [docs ad-hoc command](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html)
* shell
* packages
* users / groups
* déploiement (git)
* services
## playbook
[docs playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html)
* ligne de commande
* --check --diff
* verbosité
## variable
* hierarchie
* from env ou Vault
* acces dynamique
* ansible-vault : utiliser vault
* https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html
## task / basic
* debug
* raw
* shell
* command
## task / basic
* register
* loop
* set_fact
* pre_task
* when
* tags
## modules
* file
* infile
* copy
* template
* package
* stat
* get_url
* unarchive
* user
* systemd
* pip
* pexpect (require pexcpect)
## roles
## remote roles
### Récupérer les roles nécessaires
......@@ -96,3 +167,18 @@ ansible all --inventory-file=inventory.ini --module-name ping -u root
```
ansible-galaxy install -f -r requirements.yml -p ansible/roles/public
```
## plugins
* callback
* filter
* lookup
* module_utils
## skeleton
https://github.com/mrjk/ansible-skel
## ansible.cfg
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment