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/27 17:23] – 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:// | Liste des modules Ansible par catégorie : https:// | ||
| Ligne 43: | 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 52: | Ligne 55: | ||
| ansible-playbook -i " | ansible-playbook -i " | ||
| </ | </ | ||
| + | |||
| + | |||
| + | === Doc | ||
| + | |||
| + | Voir ansible-doc. Exemple : | ||
| + | <code bash> | ||
| + | ansible-doc -t keyword -l | ||
| + | </ | ||
| + | |||
| === Inventaire | === Inventaire | ||
| Ligne 89: | Ligne 101: | ||
| Ou | Ou | ||
| - | <code ini / | + | '' |
| + | <code ini> | ||
| [defaults] | [defaults] | ||
| host_key_checking = False | host_key_checking = False | ||
| Ligne 120: | 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 145: | Ligne 174: | ||
| Exemple 1 | Exemple 1 | ||
| - | <code ini ansible.cfg> | + | |
| + | '' | ||
| + | <code ini> | ||
| [defaults] | [defaults] | ||
| strategy = free | strategy = free | ||
| Ligne 154: | Ligne 185: | ||
| ansible -e serial_number=50 | ansible -e serial_number=50 | ||
| </ | </ | ||
| + | |||
| == Connexions | == Connexions | ||
| Ligne 205: | Ligne 237: | ||
| Ici **foo** dépend de **bar** | Ici **foo** dépend de **bar** | ||
| - | <code yaml roles/ | + | |
| + | '' | ||
| + | <code yaml> | ||
| --- | --- | ||
| allow_duplicates: | allow_duplicates: | ||
| Ligne 211: | Ligne 245: | ||
| - { role: bar } | - { role: bar } | ||
| </ | </ | ||
| + | |||
| + | |||
| == Exemple | == Exemple | ||
| Ligne 223: | Ligne 259: | ||
| - | <code yaml / | + | '' |
| + | <code yaml> | ||
| --- | --- | ||
| Ligne 230: | Ligne 267: | ||
| - | < | + | '' |
| + | < | ||
| --- | --- | ||
| - name: Ubuntu lancer rpcbind avant NIS | - name: Ubuntu lancer rpcbind avant NIS | ||
| Ligne 245: | 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 272: | Ligne 312: | ||
| changed_when: | changed_when: | ||
| </ | </ | ||
| + | |||
| === Exemple de find shell | === Exemple de find shell | ||
| Ligne 353: | 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 377: | Ligne 420: | ||
| Grâce à '' | Grâce à '' | ||
| - | <code yaml play.yml> | + | |
| + | '' | ||
| + | <code yaml> | ||
| - name: Test | - name: Test | ||
| hosts: all | hosts: all | ||
| Ligne 384: | 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 410: | 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 480: | Ligne 536: | ||
| Solution | Solution | ||
| - | <code ini ~/ | + | '' |
| + | <code ini> | ||
| [defaults] | [defaults] | ||
| allow_world_readable_tmpfiles = true | allow_world_readable_tmpfiles = true | ||
| Ligne 523: | Ligne 580: | ||
| rsync_path: / | rsync_path: / | ||
| </ | </ | ||
| + | |||
| === Pb No module named ' | === Pb No module named ' | ||
| Ligne 533: | Ligne 591: | ||
| ModuleNotFoundError: | ModuleNotFoundError: | ||
| </ | </ | ||
| + | |||
| ==== Solution | ==== Solution | ||
| Ligne 542: | 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 554: | Ligne 615: | ||
| fatal: [localhost]: | fatal: [localhost]: | ||
| </ | </ | ||
| + | |||
| ==== Solution | ==== Solution | ||
| Ligne 605: | Ligne 667: | ||
| * bats | * bats | ||
| * [[https:// | * [[https:// | ||
| + | * https:// | ||
| <code bash> | <code bash> | ||
| Ligne 610: | Ligne 673: | ||
| ansible-test sanity --docker | ansible-test sanity --docker | ||
| </ | </ | ||
| + | |||
| === Molecule | === Molecule | ||
| Ligne 639: | Ligne 703: | ||
| '' | '' | ||
| - | < | + | <code yaml> |
| --- | --- | ||
| Ligne 666: | Ligne 730: | ||
| - | <code python | + | '' |
| + | <code python> | ||
| roles/ | roles/ | ||
| </ | </ | ||
| Ligne 682: | Ligne 747: | ||
| https:// | https:// | ||
| + | |||
| == Autres | == Autres | ||
tech/notes_ansible.1758986580.txt.gz · Dernière modification : de Jean-Baptiste
