如何将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
但错误发生在到达之前。
温温酱