Outils pour utilisateurs

Outils du site


tech:notes_ansible

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tech:notes_ansible [2025/11/03 13:30] Jean-Baptistetech:notes_ansible [2025/11/20 15:28] (Version actuelle) Jean-Baptiste
Ligne 11: Ligne 11:
 * https://github.com/STEAMULO * https://github.com/STEAMULO
 * http://people.redhat.com/mlessard/mtl/presentations/apr2018/AnsibleF5WorkshopVF.pdf * http://people.redhat.com/mlessard/mtl/presentations/apr2018/AnsibleF5WorkshopVF.pdf
 +* https://legacy-controller-docs.ansible.com/automation-controller/latest/html/
  
 Liste des modules Ansible par catégorie : https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html Liste des modules Ansible par catégorie : https://docs.ansible.com/ansible/2.9/modules/modules_by_category.html
Ligne 43: Ligne 44:
 === Install avec PIP === Install avec PIP
  
-<code bash https://raw.githubusercontent.com/mrlesmithjr/ansible-samba/master/provision.sh>+ 
 +''https://raw.githubusercontent.com/mrlesmithjr/ansible-samba/master/provision.sh'' 
 +<code bash>
 #!/bin/bash #!/bin/bash
 sudo apt-get update sudo apt-get update
Ligne 98: Ligne 101:
 Ou  Ou 
  
-<code ini /etc/ansible/ansible.cfg>+''/etc/ansible/ansible.cfg'' 
 +<code ini>
 [defaults] [defaults]
 host_key_checking = False host_key_checking = False
Ligne 170: Ligne 174:
  
 Exemple 1 Exemple 1
-<code ini ansible.cfg>+ 
 +''ansible.cfg'' 
 +<code ini>
 [defaults] [defaults]
 strategy = free strategy = free
Ligne 179: Ligne 185:
 ansible -e serial_number=50  ansible -e serial_number=50 
 </code> </code>
 +
  
 == Connexions == Connexions
Ligne 230: Ligne 237:
 Ici **foo** dépend de **bar**  Ici **foo** dépend de **bar** 
  
-<code yaml roles/foo/meta/main.yml>+ 
 +''roles/foo/meta/main.yml'' 
 +<code yaml>
 --- ---
 allow_duplicates: no allow_duplicates: no
Ligne 236: Ligne 245:
 - { role: bar } - { role: bar }
 </code> </code>
 +
 +
  
 == Exemple == Exemple
Ligne 248: Ligne 259:
  
  
-<code yaml /roles/nis_client/tasks/main.yml>+''/roles/nis_client/tasks/main.yml'' 
 +<code yaml>
 --- ---
  
Ligne 255: Ligne 267:
  
  
-<code  yaml /roles/nis_client/tasks/debian.yml>+''/roles/nis_client/tasks/debian.yml'' 
 +<code  yaml>
 --- ---
   - name: Ubuntu lancer rpcbind avant NIS   - name: Ubuntu lancer rpcbind avant NIS
Ligne 270: Ligne 283:
       - restart nis       - restart nis
 </code> </code>
 +
 +
  
 === Vérifier si un paquet deb est déjà installé === Vérifier si un paquet deb est déjà installé
Ligne 297: Ligne 312:
   changed_when: my_package_check_deb.rc == 1   changed_when: my_package_check_deb.rc == 1
 </code> </code>
 +
  
 === Exemple de find shell === Exemple de find shell
Ligne 378: Ligne 394:
   when: not ansible_check_mode   when: not ansible_check_mode
 </code> </code>
 +
 +
 === Exemple module command ne lancer qu'une seule fois une commande. === Exemple module command ne lancer qu'une seule fois une commande.
  
Ligne 402: Ligne 420:
  
 Grâce à ''gather_subset'' Grâce à ''gather_subset''
-<code yaml play.yml>+ 
 +''play.yml'' 
 +<code yaml>
 - name: Test - name: Test
   hosts: all   hosts: all
Ligne 409: 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:///tmp/a_file.txt
 +    dest: /tmp/afilecopy.txt
 +</code>
  
  
Ligne 435: Ligne 465:
 La solution de contournement la plus simple à mettre en place est de définir à True la variable ''ansible_shell_allow_world_readable_temp'' La solution de contournement la plus simple à mettre en place est de définir à True la variable ''ansible_shell_allow_world_readable_temp''
  
-<code yaml play1.yml>+''play1.yml'' 
 +<code yaml>
 #!/usr/bin/ansible-playbook #!/usr/bin/ansible-playbook
  
Ligne 505: Ligne 536:
 Solution  Solution 
  
-<code ini ~/.ansible.cfg>+''~/.ansible.cfg'' 
 +<code ini>
 [defaults] [defaults]
 allow_world_readable_tmpfiles = true allow_world_readable_tmpfiles = true
Ligne 548: Ligne 580:
         rsync_path: /usr/bin/rsync         rsync_path: /usr/bin/rsync
 </code> </code>
 +
  
 === Pb No module named 'ansible' === Pb No module named 'ansible'
Ligne 558: Ligne 591:
 ModuleNotFoundError: No module named 'ansible' ModuleNotFoundError: No module named 'ansible'
 </code> </code>
 +
  
 ==== Solution ==== Solution
Ligne 567: Ligne 601:
  
 Solution si test OK Solution si test OK
-<code bash ~/.bashrc>+ 
 +''~/.bashrc'' 
 +<code bash>
 # Fix bug Ansible : No module named 'ansible' # Fix bug Ansible : No module named 'ansible'
 export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages export PYTHONPATH=$PYTHONPATH:/usr/lib/python3/dist-packages
Ligne 579: Ligne 615:
 fatal: [localhost]: FAILED! => {"msg": "The conditional check 'stat_resolv_conf.stat.attr_flags | search(\"i\")' failed. The error was: template error while templating string: Could not load \"search\": 'search'. String: {% if stat_resolv_conf.stat.attr_flags | search(\"i\") %} True {% else %} False {% endif %}. Could not load \"search\": 'search'\n\nThe error appears to be in '/home/jean/code/dns_update_resolv_conf/roles/dns_update_resolv_conf/tasks/main.yml': line 147, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Remove immutable attribute\n  ^ here\n"} fatal: [localhost]: FAILED! => {"msg": "The conditional check 'stat_resolv_conf.stat.attr_flags | search(\"i\")' failed. The error was: template error while templating string: Could not load \"search\": 'search'. String: {% if stat_resolv_conf.stat.attr_flags | search(\"i\") %} True {% else %} False {% endif %}. Could not load \"search\": 'search'\n\nThe error appears to be in '/home/jean/code/dns_update_resolv_conf/roles/dns_update_resolv_conf/tasks/main.yml': line 147, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n- name: Remove immutable attribute\n  ^ here\n"}
 </code> </code>
 +
  
 ==== Solution ==== Solution
Ligne 630: Ligne 667:
 * bats * bats
 * [[https://blog.stephane-robert.info/post/test-role-ansible-kitchenci-serverspec/|Test Kitchen]] * [[https://blog.stephane-robert.info/post/test-role-ansible-kitchenci-serverspec/|Test Kitchen]]
 +* https://docs.openstack.org/openstack-ansible/latest/contributors/testing.html
  
 <code bash> <code bash>
Ligne 635: Ligne 673:
 ansible-test sanity --docker ansible-test sanity --docker
 </code> </code>
 +
  
 === Molecule === Molecule
Ligne 664: Ligne 703:
  
 ''.ansible-lint'' ''.ansible-lint''
-<code python yaml>+<code yaml>
 --- ---
  
Ligne 691: Ligne 730:
  
  
-<code python .ansible-lint-ignore>+''.ansible-lint-ignore'' 
 +<code python>
 roles/agent/defaults/main.yml var-naming[no-role-prefix] roles/agent/defaults/main.yml var-naming[no-role-prefix]
 </code> </code>
Ligne 707: Ligne 747:
  
 https://beingasysadmin.wordpress.com/2015/06/03/ping-your-ansible-from-slack/ https://beingasysadmin.wordpress.com/2015/06/03/ping-your-ansible-from-slack/
 +
  
 == Autres == Autres
tech/notes_ansible.1762173048.txt.gz · Dernière modification : de Jean-Baptiste

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki