tech:notes_ansible
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:notes_ansible [2025/09/23 10:15] – Jean-Baptiste | tech:notes_ansible [2025/11/20 15:28] (Version actuelle) – Jean-Baptiste | ||
|---|---|---|---|
| Ligne 11: | Ligne 11: | ||
| * https:// | * https:// | ||
| * http:// | * http:// | ||
| + | * https:// | ||
| + | |||
| + | Liste des modules Ansible par catégorie : https:// | ||
| Glossary | Glossary | ||
| Ligne 41: | Ligne 44: | ||
| === Install avec PIP | === Install avec PIP | ||
| - | <code bash https:// | + | |
| + | '' | ||
| + | <code bash> | ||
| #!/bin/bash | #!/bin/bash | ||
| sudo apt-get update | sudo apt-get update | ||
| Ligne 50: | Ligne 55: | ||
| ansible-playbook -i " | ansible-playbook -i " | ||
| </ | </ | ||
| + | |||
| + | |||
| + | === Doc | ||
| + | |||
| + | Voir ansible-doc. Exemple : | ||
| + | <code bash> | ||
| + | ansible-doc -t keyword -l | ||
| + | </ | ||
| + | |||
| === Inventaire | === Inventaire | ||
| Ligne 87: | Ligne 101: | ||
| Ou | Ou | ||
| - | <code ini / | + | '' |
| + | <code ini> | ||
| [defaults] | [defaults] | ||
| host_key_checking = False | host_key_checking = False | ||
| Ligne 118: | Ligne 133: | ||
| ssh-add | ssh-add | ||
| </ | </ | ||
| + | |||
| + | Exemple de conf par variables | ||
| + | <code bash> | ||
| + | export ANSIBLE_ALLOW_EMBEDDED_TEMPLATES=false | ||
| + | export ANSIBLE_NOCOWS=true | ||
| + | export BECOME_ALLOW_SAME_USER=false | ||
| + | export ANSIBLE_PRIVATE_ROLE_VARS=true | ||
| + | export ANSIBLE_DISPLAY_ARGS_TO_STDOUT=true | ||
| + | export ANSIBLE_DISPLAY_TRACEBACK=always | ||
| + | export ANSIBLE_DUPLICATE_YAML_DICT_KEY=error | ||
| + | # export ANSIBLE_ENABLE_TASK_DEBUGGER=true | ||
| + | export ANSIBLE_HOST_PATTERN_MISMATCH=error | ||
| + | export ANSIBLE_INVENTORY_ANY_UNPARSED_IS_FAILED=true | ||
| + | export ANSIBLE_INVENTORY_UNPARSED_FAILED=true | ||
| + | </ | ||
| + | |||
| == Usage | == Usage | ||
| Ligne 143: | Ligne 174: | ||
| Exemple 1 | Exemple 1 | ||
| - | <code ini ansible.cfg> | + | |
| + | '' | ||
| + | <code ini> | ||
| [defaults] | [defaults] | ||
| strategy = free | strategy = free | ||
| Ligne 152: | Ligne 185: | ||
| ansible -e serial_number=50 | ansible -e serial_number=50 | ||
| </ | </ | ||
| + | |||
| == Connexions | == Connexions | ||
| Ligne 203: | Ligne 237: | ||
| Ici **foo** dépend de **bar** | Ici **foo** dépend de **bar** | ||
| - | <code yaml roles/ | + | |
| + | '' | ||
| + | <code yaml> | ||
| --- | --- | ||
| allow_duplicates: | allow_duplicates: | ||
| Ligne 209: | Ligne 245: | ||
| - { role: bar } | - { role: bar } | ||
| </ | </ | ||
| + | |||
| + | |||
| == Exemple | == Exemple | ||
| Ligne 221: | Ligne 259: | ||
| - | <code yaml / | + | '' |
| + | <code yaml> | ||
| --- | --- | ||
| Ligne 228: | Ligne 267: | ||
| - | < | + | '' |
| + | < | ||
| --- | --- | ||
| - name: Ubuntu lancer rpcbind avant NIS | - name: Ubuntu lancer rpcbind avant NIS | ||
| Ligne 243: | Ligne 283: | ||
| - restart nis | - restart nis | ||
| </ | </ | ||
| + | |||
| + | |||
| === Vérifier si un paquet deb est déjà installé | === Vérifier si un paquet deb est déjà installé | ||
| Ligne 270: | Ligne 312: | ||
| changed_when: | changed_when: | ||
| </ | </ | ||
| + | |||
| === Exemple de find shell | === Exemple de find shell | ||
| Ligne 351: | Ligne 394: | ||
| when: not ansible_check_mode | when: not ansible_check_mode | ||
| </ | </ | ||
| + | |||
| + | |||
| === Exemple module command ne lancer qu'une seule fois une commande. | === Exemple module command ne lancer qu'une seule fois une commande. | ||
| Ligne 375: | Ligne 420: | ||
| Grâce à '' | Grâce à '' | ||
| - | <code yaml play.yml> | + | |
| + | '' | ||
| + | <code yaml> | ||
| - name: Test | - name: Test | ||
| hosts: all | hosts: all | ||
| Ligne 382: | Ligne 429: | ||
| + | == Copie de fichiers | ||
| + | |||
| + | Une alternative à M(copy) | ||
| + | <code yaml> | ||
| + | - name: Download file from a file path | ||
| + | # ansible.builtin.copy: | ||
| + | ansible.builtin.get_url: | ||
| + | url: file:/// | ||
| + | dest: / | ||
| + | </ | ||
| Ligne 408: | Ligne 465: | ||
| La solution de contournement la plus simple à mettre en place est de définir à True la variable '' | La solution de contournement la plus simple à mettre en place est de définir à True la variable '' | ||
| - | <code yaml play1.yml> | + | '' |
| + | <code yaml> | ||
| # | # | ||
| Ligne 478: | Ligne 536: | ||
| Solution | Solution | ||
| - | <code ini ~/ | + | '' |
| + | <code ini> | ||
| [defaults] | [defaults] | ||
| allow_world_readable_tmpfiles = true | allow_world_readable_tmpfiles = true | ||
| Ligne 521: | Ligne 580: | ||
| rsync_path: / | rsync_path: / | ||
| </ | </ | ||
| + | |||
| === Pb No module named ' | === Pb No module named ' | ||
| Ligne 531: | Ligne 591: | ||
| ModuleNotFoundError: | ModuleNotFoundError: | ||
| </ | </ | ||
| + | |||
| ==== Solution | ==== Solution | ||
| Ligne 540: | Ligne 601: | ||
| Solution si test OK | Solution si test OK | ||
| - | <code bash ~/ | + | |
| + | '' | ||
| + | <code bash> | ||
| # Fix bug Ansible : No module named ' | # Fix bug Ansible : No module named ' | ||
| export PYTHONPATH=$PYTHONPATH:/ | export PYTHONPATH=$PYTHONPATH:/ | ||
| Ligne 552: | Ligne 615: | ||
| fatal: [localhost]: | fatal: [localhost]: | ||
| </ | </ | ||
| + | |||
| ==== Solution | ==== Solution | ||
| Ligne 603: | Ligne 667: | ||
| * bats | * bats | ||
| * [[https:// | * [[https:// | ||
| + | * https:// | ||
| <code bash> | <code bash> | ||
| Ligne 608: | Ligne 673: | ||
| ansible-test sanity --docker | ansible-test sanity --docker | ||
| </ | </ | ||
| + | |||
| === Molecule | === Molecule | ||
| Ligne 637: | Ligne 703: | ||
| '' | '' | ||
| - | < | + | <code yaml> |
| --- | --- | ||
| Ligne 664: | Ligne 730: | ||
| - | <code python | + | '' |
| + | <code python> | ||
| roles/ | roles/ | ||
| </ | </ | ||
| Ligne 680: | Ligne 747: | ||
| https:// | https:// | ||
| + | |||
| == Autres | == Autres | ||
tech/notes_ansible.1758615346.txt.gz · Dernière modification : de Jean-Baptiste
