遍历Ansibles组中的嵌套字典
我正在尝试迭代地遍历ansible环境中的一个group_var,提取工资值并在命令模块中使用它。我的ansible/groups\u vars文件中有以下文件-遍历Ansibles组中的嵌套字典,ansible,Ansible,我正在尝试迭代地遍历ansible环境中的一个group_var,提取工资值并在命令模块中使用它。我的ansible/groups\u vars文件中有以下文件- people: george: lastname: smith job: title: associate salary: 60 chris: lastname: george job: title: senior salary: 70
people:
george:
lastname: smith
job:
title: associate
salary: 60
chris:
lastname: george
job:
title: senior
salary: 70
greg:
lastname: anderson
job:
title: director
salary: 95
这是我目前拥有的代码:
- name: Run module check command against every docroot
command: 'drush --root=/var/www/html/wwwroot/{{item.0.salary}}/docroot en update'
with_subelements:
- "{{ people }}"
- job.salary
我看到的错误是:
失败!=>{“msg”:“关键工资应该指向一个列表,得到'60'”
我在这里通过查看以下问题来总结此解决方案:
尝试将该值设置为.0或.1似乎会使其查找字典,将其设置为[0]或[1]表示: {“msg”:“在迭代项{u'title:associate,u'salary':u'60'}中找不到'salary[1]'键”
我觉得我真的很快就要开始工作了,但我只缺少了一小部分。我怎样才能让它迭代地循环并提取特定的信息呢?在您发布的示例中,没有嵌套的字典或列表可以循环。您希望迭代单个字典并引用其值 以下是对你问题的回答:
- name: Run module check command against every docroot
command: 'drush --root=/var/www/html/wwwroot/{{item.value.job.salary}}/docroot en update'
with_dict:
- "{{ people }}"
在您发布的示例中,没有嵌套的字典或列表可供循环。您希望迭代单个字典并引用其值 以下是对你问题的回答:
- name: Run module check command against every docroot
command: 'drush --root=/var/www/html/wwwroot/{{item.value.job.salary}}/docroot en update'
with_dict:
- "{{ people }}"