使用 .podman_container_info 模块中的注册变量
using registered variables from .podman_container_info module
我正在尝试使用 containers.podman.podman_container_info ansible 模块输出中的已注册变量。基本上我是这样做的
- name: checking if gitlab-runner is present
containers.podman.podman_container_info:
name: gitlab-runner
register: gitlabrunner_status
但是,如果此容器是基于名称定义的,则下一步我想添加一个条件以仅 运行 下一步。为了测试,我只使用调试模块,所以这是我尝试过的。
- name: debug
debug:
var: gitlabrunner_status.containers.Name
- name: debug
debug:
var: gitlabrunner_status["containers"]["Name"]
我每次尝试都得到了 VARIABLE IS NOT DEFINED!
那么我怎样才能从这个复杂的输出中提取名称以用于有条件的输出。
如果这样:
- name: debug
debug:
var: gitlabrunner_status.containers.Name
给你一个VARIABLE IS NOT DEFINED
错误,然后确保父变量有你期望的内容。也就是说,从这样的任务开始:
- name: debug
debug:
var: gitlabrunner_status.containers
查看该输出,我们看到 containers
是一个如下所示的列表:
"gitlabrunner_status.containers": [
{
...
"Name": "gitlab-runner",
...
}
]
因为containers
是一个列表,我们不能简单地求 gitlabrunner_status["containers"]["Name"]
。我们需要一个列表索引到
containers
列表:
- name: debug
debug:
var: gitlabrunner_status.containers.0.Name
我正在尝试使用 containers.podman.podman_container_info ansible 模块输出中的已注册变量。基本上我是这样做的
- name: checking if gitlab-runner is present
containers.podman.podman_container_info:
name: gitlab-runner
register: gitlabrunner_status
但是,如果此容器是基于名称定义的,则下一步我想添加一个条件以仅 运行 下一步。为了测试,我只使用调试模块,所以这是我尝试过的。
- name: debug
debug:
var: gitlabrunner_status.containers.Name
- name: debug
debug:
var: gitlabrunner_status["containers"]["Name"]
我每次尝试都得到了 VARIABLE IS NOT DEFINED!
那么我怎样才能从这个复杂的输出中提取名称以用于有条件的输出。
如果这样:
- name: debug
debug:
var: gitlabrunner_status.containers.Name
给你一个VARIABLE IS NOT DEFINED
错误,然后确保父变量有你期望的内容。也就是说,从这样的任务开始:
- name: debug
debug:
var: gitlabrunner_status.containers
查看该输出,我们看到 containers
是一个如下所示的列表:
"gitlabrunner_status.containers": [
{
...
"Name": "gitlab-runner",
...
}
]
因为containers
是一个列表,我们不能简单地求 gitlabrunner_status["containers"]["Name"]
。我们需要一个列表索引到
containers
列表:
- name: debug
debug:
var: gitlabrunner_status.containers.0.Name