Autre problème également : c'est « sans agent » mais complètement dépendant de la version de Python sur les hôtes donc les versions d'Ansible récentes ne peuvent pas gérer des versions d'OS un peu vieilles mais encore sous maintenance (exemple : RHEL 8) : https:// www.reddit.com/r/ansible/comments/1d9pfhf/ dnf_redhat8_rocky_8_not_compatible_with/
ah oui j'ai eu ce problème aussi, mais pour rhel6 ou rhel7 je sais plus, la version de python sur les hôtes était trop ancienne (python 3.6). donc je bloque la version d'ansible à 2.16 et cela tourne sans problème.
Moralité je l'utilise car ça fait une partie du boulot mais je vais continuer à lancer des scripts avec le module « command » pour utiliser des scripts Python ou Bash qui feront ça en quelques lignes plutôt que de faire des pages et des pages de playbooks en YAML pour faire des tests élémentaires. Je songe même à encoder certaines sorties et les envoyer à des scripts pour traitement plutôt que de le faire en Jinja.
bon, c'est instinctivement ce que je fais aussi, et lorsque j'ai besoin de déployer un truc vite fait, bah...
- name: quelque chose ansible.builtin.shell: executable: /bin/bash cmd: | set -e ... creates: /etc/LA-CONF-OU-UNIT-EN-QUESTION register: qqchose_install
- debug: var=qqchose_install.stdout - debug: var=qqchose_install.stderr
mais au final c'est quand même mieux de faire les choses proprement avec les modules ansibles, car ils gèrent quand même beaucoup mieux l'idempotence. Par exemple j'installais fluent-bit (un collecteur de logs) avec des scripts...
- name: install fluentbit ansible.builtin.script: cmd: scripts/install.bash
mais je ne bénéficiais pas d'une vue clair sur ce qui reste à changer/modifier lors des runs subséquents avec --check. alors que maintenant c'est bon, full idempotence in da place.
https://pub.nethence.com/system/ansible/playbooks/fluentbit/tasks-fluentbit-...
c'est paradoxale que je défense ansible contre les méthodes à l'ancienne, car mon outil favori dans ce style c'est ClusterIt qu'on utilisait déjà il y a 25 ans (https://www.garbled.net/clusterit.html). Et il sait faire l'exécution de scripts (-s). Mais bon, il connaît pas 'become = true'. C'est marrant quand même comment la "modernité" nous a baisée, sur des petits détails.
-elge