我试图迭代循环遍历我们在ansible环境中的group_var并提取工资值并在命令模块中使用它。我的ansible / groups_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'}
我在这里通过查看以下问题来整理这个解决方案:
Ansible with_subelements
Ansible loop using multi-ter group_vars
Ansible with subelements referencing a dict
尝试将值设置为.0或.1似乎使其查找字典,并将其设置为[0]或[1]说:
{" msg":"找不到工资[1]'重复项目' {u' title&#39 ;: associate,u' salary&#39 ;: u'}"}"}
我觉得我真的很接近这个工作,但我只缺少一小部分。如何让它迭代循环并提取特定的信息呢?
答案 0 :(得分:2)
在您发布的示例中,没有嵌套的词典或列表可以循环显示。您希望迭代单个字典并引用其值。
以下是您的问题的答案:
- 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 }}"