{{tag>Ansible CA}}
= Notes Ansible module set_stats
Voir :
* https://docs.ansible.com/ansible/latest/collections/ansible/builtin/set_stats_module.html
* https://docs.ansible.com/ansible-tower/latest/html/userguide/workflows.html
* https://stackoverflow.com/questions/49001108/ansible-tower-set-stats-does-not-seem-to-work
* https://github.com/ansible/ansible/blob/devel/lib/ansible/plugins/action/set_stats.py
env ANSIBLE_SHOW_CUSTOM_STATS=yes ./playbook.yml -i test-ansible,test-ansible2,
Pour ne pas systématiquement devoir mettre ''ANSIBLE_SHOW_CUSTOM_STATS=yes'' il est possible de mettre ce fichier ansible.cfg à la racine du projet (même arborescence que le playbook)
''ansible.cfg''
[defaults]
show_custom_stats = True
''playbook.yml''
#!/usr/bin/ansible-playbook
---
- name: play
hosts: all
tasks:
- name: set stats
set_stats:
data:
var1: plop
CUSTOM STATS: ***********************************************************************************************************************************************
RUN: { "var1": "plopplop"}
''playbook.yml''
#!/usr/bin/ansible-playbook
---
- name: play
hosts: all
tasks:
- name: set stats
set_stats:
data:
var1: plop
aggregate: no
CUSTOM STATS: ***********************************************************************************************************************************************
RUN: { "var1": "plop"}
Si ''aggregate: no'' sur plusieurs machines, la variable est écrasée, c'est la dernière valeur qui l'emporte.
''playbook.yml''
#!/usr/bin/ansible-playbook
---
- name: play
hosts: all
tasks:
- name: set stats
set_stats:
data:
var1: plop
per_host: yes
CUSTOM STATS: ***********************************************************************************************************************************************
test-ansible: { "var1": "plop"}
test-ansible2: { "var1": "plop"}
Filtrer le set_stats
env ANSIBLE_SHOW_CUSTOM_STATS=yes ./playbook.yml -i inv.yaml | sed -n -e '/CUSTOM STATS:/,/$/p' | sed -e '/CUSTOM STATS:/d' | sed -e 's/[a-zA-Z0-9]*://' | jq .