玩书:
ansible版本:ansible [核心2.15.3]
[] => (item=roles/group1/vars/main.yml) => {
"ansible_loop_var": "item",
"item": "roles/group1/vars/main.yml",
"test_user": "demo_user_forgroup2"
it is printing only from the last item in the loop.
I tried with loop, register, and blocks ,
how to debug the value of item.test_user??
首先,不清楚为什么要将角色变量包含到剧本中。虽然从技术上讲这是可能的,但必须记住变量优先规则。
loop_var: item
没有意义,因为 item
已经是默认的循环变量名称。 loop_var
旨在在嵌套循环中覆盖此名称。
它仅从循环中的最后一项开始打印
您没有发布
roles/group1/vars/main.yml
和 roles/group2/vars/main.yml
的内容,但如果这些文件具有相同的变量名称,这是预期的 - 第二次包含会覆盖第一次迭代中包含的变量值。
如何调试
的值?item.test_user
你没有这样的变量。您正在迭代文件名。变量不绑定到它们加载的文件。同样,如果您包含两个包含相同变量的变量文件,则第二个变量将覆盖第一个变量的值。你不会有两个不同的价值观。
我强烈建议您先阅读 Ansible 文档,然后再继续,尤其是这些部分: