为了账号安全,请及时绑定邮箱和手机立即绑定

如何将Ansible的with_item与变量一起使用?

如何将Ansible的with_item与变量一起使用?

米脂 2019-07-31 10:44:17
如何将Ansible的with_item与变量一起使用?我正在尝试在Ansible Playbook中转换列表项的某些字段。这是最简单的再现路径,跳过转换。结果应与users变量相同。---# Run with:# ansible-playbook -i "localhost," loop3.yml- hosts: localhost   connection: local   gather_facts: false   vars:     users:       - name: paul         uid: 1       - name: pete         uid: 2   tasks:     - set_fact:       args:         useritem:           name: '{{ item.name }}'           uid:  '{{ item.uid }}'       with_items:         - users       register: sf_result     - debug: var=sf_result     - set_fact:         userslist: "{{ sf_result.results | map(attribute='ansible_facts.useritem') | list }}"     - debug: var=userslist我收到此错误:TASK [set_fact useritem={u'name': u'{{ item.name }}', u'uid': u'{{ item.uid }}'}] ***fatal: [localhost]: FAILED! => {"failed": true, "msg": "ERROR! 'unicode object' has no attribute 'name'"}有几个 例子很接近我needbut我可以用找不到工作示例set_fact以及with_items和项目,如地图。我已经尝试了Ansible 1.9.2,1.9.4和2.0.0-0.6.rc1,但是没有更多的成功。Ansible 2应允许跳过第二次调用set_fact但错误发生在到达之前。
查看完整描述

1 回答

?
温温酱

TA贡献1752条经验 获得超4个赞

我以为我确实读过一个with_items接受一个裸变量名称的地方,但事实并非如此。

该程序按预期运行:

with_items: "{{ users }}"


查看完整回答
反对 回复 2019-07-31
  • 1 回答
  • 0 关注
  • 1553 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信