使用 .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