假设我有以下列表:
myList
- name: Bob
age: 25
- name: Alice
age: 18
- name: Bryan
age: 20
Run Code Online (Sandbox Code Playgroud)
我想要的是遍历myList并获取名称列表并将其设置为变量nameList:
nameList
- name: Bob
- name: Alice
- name: Bryan
Run Code Online (Sandbox Code Playgroud)
是否在ansible中有一个简短的语法?
如果您需要带有单键的字典列表name(如您的示例中所示),则:
{{ myList | map('json_query','{name:name}') | list }}
Run Code Online (Sandbox Code Playgroud)
结果是:
[
{ "name": "Bob" },
{ "name": "Alice" },
{ "name": "Bryan" }
]
Run Code Online (Sandbox Code Playgroud)
如果您需要简单的名称列表:
{{ myList | map(attribute='name') | list }}
Run Code Online (Sandbox Code Playgroud)
结果是:
[ "Bob", "Alice", "Bryan" ]
Run Code Online (Sandbox Code Playgroud)