遍历Ansibles组中的嵌套字典

遍历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

我正在尝试迭代地遍历ansible环境中的一个group_var,提取工资值并在命令模块中使用它。我的ansible/groups\u vars文件中有以下文件-

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 }}"