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 @@ ...@@ -23,6 +23,8 @@
* marche bien en python 3 * marche bien en python 3
* virtualenv * virtualenv
* [ansible docs](https://docs.ansible.com/)
## ansible ## ansible
...@@ -42,50 +44,119 @@ ...@@ -42,50 +44,119 @@
## terminologie ## terminologie
* **mgmt node** (machine pilote) machine surlaquelle ansible est installé et responsable de la configuration de toutes les machines gérées. * **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 * **inventory** (inventaire) fichier contenant les ip de tous les serveurs à configurer
* **Playbook** gère la configuration à déployer sur chaque serveur * **playbook** gère la configuration à déployer sur chaque serveur
* **Task** fichier où sont définies les actions réalisées par le playbook * **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 ## terminologie
* **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) * **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
ansible all --inventory-file=inventory.ini --module-name ping -u root
## terminologie
* modules
* **play** est l'exécution d'un playbook sur un serveur
* task * **facts** information collectée par ansible sur le système du serveur à configurer
* register * **handlers** similaire aux **tasks** mais appelable à partir d'une **task** (redémarrage de service par exemple)
* debug
* loop
* set_fact ## inventory
* pre_task
* roles * fichier texte au format *ini*
* organiser par groupes
* playbook * [inventory docs](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html)
* ligne de commande
* --check --diff ```ini
* verbosité localhost ansible_connection=local
* tags
[webservers]
* variable (see debug task) jumper ansible_port=5555 ansible_host=192.0.2.50
* hierarchie bar.example.com ansible_user=limosadm
* from env ou Vault
* acces dynamique [dbservers]
* ansible-vault : utiliser vault one.example.com
* https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html two.example.com
* plugin www[03:10].example.com
* callback ```
* filter
* lookup
* modules ansible utile ## ansible / ad-hoc command
* pexpect
* remote roles ```
$ ansible all --inventory-file=inventory.ini \
--module-name ping -u root
* skeleton https://github.com/mrjk/ansible-skel $ 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 ### Récupérer les roles nécessaires
...@@ -96,3 +167,18 @@ ansible all --inventory-file=inventory.ini --module-name ping -u root ...@@ -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 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