Skip to content
Snippets Groups Projects
Commit fec75022 authored by Vincent Mazenod's avatar Vincent Mazenod
Browse files

ansible

parent 3afb06ac
No related branches found
No related tags found
No related merge requests found
Pipeline #3252 passed
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment