我正在尝试在 Ansible 中构建 JSON 对象的数组/列表。我的剧本是通过指定来调用的--extra-vars "userids=123456,654321"
。
然后我尝试使用以下内容构建列表。“待定”只是一个占位符。我将在后面的剧本中使用从 SQL 查询中检索到的数据填充这些值。
- name: Initiate User List
set_fact:
all_users: []
- name: Add new JSON Objects to List
set_fact:
all_users: "{{ all_users+ [{ 'UserID': '{{ item }}', 'UserType': 'TBD', 'UserName': 'TBD' }] }}"
loop: "{{ userids.split(',') }}"
- name: Debug
debug:
var: all_users
列表排序的构建,但它跳过了列表中的第一项。这是结果输出:
TASK [Initiate User List] *************************************************************************************************************************************************************
ok: [localhost]
TASK [Add new JSON Objects to List] ******************************************************************************************************************************************************
ok: [localhost] => (item=123456)
ok: [localhost] => (item=654321)
TASK [Debug] *****************************************************************************************************************************************************************************
ok: [localhost] => {
"all_users": [
{
"UserID": "654321",
"UserType": "TBD",
"UserName": "TBD"
},
{
"UserID": "{{ item }}",
"UserType": "TBD",
"UserName": "TBD"
}
]
}
我不确定我错过了什么。我尝试在循环任务之前执行“set_fact”以首先执行 split(),但这没有帮助。我也试过“with_items”而不是循环,没有运气