我有以下任务
- debug:
msg: "Here: {{ item['containers'] }}"
with_items: "{{ container_matrix['results'] }}"
返回一个包含容器名称及其启动参数的字典。 例如:{“ container-1”:{“ docker_run”:“ docker run -p 80:80 nginx”,“ env_file”:“ config1.env”}, “ container-2”:{“ docker_run”:“ docker run -p 8080:80 nginx”,“ env_file”:“ config2.env”}
但是我实际上要提取容器名称及其env_file,
container_1 -> config1.env
container-2 -> config2.env
我尝试了几件事,但似乎所有方法都不起作用。
- debug:
msg: "Here: {{ item }}"
with_dict: "{{ container_matrix['results'].'containers'] }}"
也失败了。
有人可以指引我正确的方向。
答案 0 :(得分:2)
给出“带有容器名称及其启动参数的字典。例如”
containers:
"container-1": {"docker_run":"docker run -p 80:80 nginx", "env_file":"config1.env"}
"container-2": {"docker_run":"docker run -p 8080:80 nginx", "env_file":"config2.env"}
任务
- set_fact:
mydata: "{{ containers|
dict2items|
json_query('[].{name: key, env_file: value.env_file}') }}"
- debug:
var: mydata
给予
"mydata": [
{
"env_file": "config1.env",
"name": "container-1"
},
{
"env_file": "config2.env",
"name": "container-2"
}
]