I sense that “with templating” does as expected?
% ansible --version
ansible [core 2.16.4]
config file = None
configured module search path = [‘/Users/wrowe/.ansible/plugins/modules’, ‘/usr/share/ansible/plugins/modules’]
ansible python module location = /opt/homebrew/lib/python3.11/site-packages/ansible
ansible collection location = /Users/wrowe/.ansible/collections:/usr/share/ansible/collections
executable location = /opt/homebrew/bin/ansible
python version = 3.11.8 (main, Feb 6 2024, 21:21:21) [Clang 15.0.0 (clang-1500.1.0.2.5)] (/opt/homebrew/opt/python@3.11/bin/python3.11)
jinja version = 3.1.3
libyaml = True
% ansible-playbook foo.yaml -i localhost,
PLAY [localhost] *******************************************************************************************************
TASK [without templating] **********************************************************************************************
ok: [localhost] => (item=varA) => {
“ansible_loop_var”: “item”,
“changed”: false,
“item”: “varA”,
“msg”: “All assertions passed”
}
ok: [localhost] => (item=varB) => {
“ansible_loop_var”: “item”,
“changed”: false,
“item”: “varB”,
“msg”: “All assertions passed”
}
TASK [with templating] *************************************************************************************************
failed: [localhost] (item=varA) => {
“ansible_loop_var”: “item”,
“assertion”: “varA is defined”,
“changed”: false,
“evaluated_to”: false,
“item”: “varA”,
“msg”: “Assertion failed”
}
failed: [localhost] (item=varB) => {
“ansible_loop_var”: “item”,
“assertion”: “varB is defined”,
“changed”: false,
“evaluated_to”: false,
“item”: “varB”,
“msg”: “Assertion failed”
}
PLAY RECAP *************************************************************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0
Walter