我正在从 Tower 启动 Ansible,然后将新用户填充为文本:
{ name: user1, uid: 5000 }
{ name: user2, uid: 5001 }
我想将这些用户作为字典进行迭代,例如:
- name: Print vars
debug:
var: "{{ item.name }}"
with_items: "{{ users.split('\n') }}"
但它不起作用:
TASK [Print vars] *********************************************************************************************************************
ok: [lx-test] => (item={ name: user1, uid: 5000 }) => {
"ansible_loop_var": "item",
"item": "{ name: user1, uid: 5000 }",
"{ name: user1, uid: 5000 }": "VARIABLE IS NOT DEFINED!"
}
ok: [lx-test] => (item={ name: user2, uid: 5001 }) => {
"ansible_loop_var": "item",
"item": "{ name: user2, uid: 5001 }",
"{ name: user2, uid: 5001 }": "VARIABLE IS NOT DEFINED!"
}
知道如何将该字符串转换为真正的字典吗?提前致谢!
更新
下面的表达式
给
适当地声明变量。
原始答案
该文本既不是有效的 JSON 也不是 YAML。您必须拆分行并逐行阅读字典。例如,给定文本
下面的任务
创建字典列表
迭代现在很简单
给