containers.podman.podman_play 模块 – 使用 Podman 运行 Kubernetes YAML 文件
注意
此模块是 containers.podman 集合 (版本 1.16.2) 的一部分。
如果您使用的是 ansible 包,则可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list。
要安装它,请使用: ansible-galaxy collection install containers.podman。您需要其他要求才能使用此模块,有关详细信息,请参阅 要求。
要在 playbook 中使用它,请指定: containers.podman.podman_play。
摘要
- 该模块读取 Kubernetes YAML 的结构化文件。然后,它将重新创建 YAML 中描述的 pod 和容器。 
要求
执行此模块的主机需要以下要求。
- 主机上已安装 Podman 
参数
| 参数 | 注释 | 
|---|---|
| 向容器或 pod 添加注释。 | |
| 身份验证文件的路径。默认为 ${XDG_RUNTIME_DIR}/containers/auth.json,使用 podman login 设置。如果在那里找不到授权状态,则检查 $HOME/.docker/config.json,使用 docker login 设置。注意 - 您还可以通过设置 REGISTRY_AUTH_FILE 环境变量来覆盖身份验证文件的默认路径。export REGISTRY_AUTH_FILE=path | |
| 即使在本地存储中找到镜像,也要构建镜像。 需要存在与要构建的镜像名称匹配的子目录。 选项 
 | |
| 使用路径中的证书 (*.crt, *.cert, *.key) 连接到注册表。默认证书目录为 /etc/containers/certs.d。(此选项不适用于远程 Podman 客户端) | |
| 使用路径中的 Kubernetes configmap YAML 为 pod 的容器中的环境变量值提供来源。注意 - configmap 选项可以多次使用以传递多个 Kubernetes configmap YAML。 | |
| 使用路径作为每个镜像的构建上下文目录。需要 build 选项为 true。 | |
| 启用模块的调试。 选项 
 | |
| 要运行的可执行文件名称,默认为“podman” 默认值:  | |
| 包含 Pod 的 YAML 配置文件的路径。 | |
| kube 文件的内容。 | |
| 为所有创建的容器设置日志驱动程序。 | |
| 设置 podman 调用的日志级别。高于指定级别 (“debug” | “info” | “warn” | “error” | “fatal” | “panic”) 的日志消息 (默认为 “error”) 选项 
 | |
| 日志驱动程序特定选项。设置自定义日志记录配置。 | |
| 指定日志文件的最大大小(例如 10mb)。 | |
| 指定日志文件的路径(例如 /var/log/container/mycontainer.json)。 | |
| 为容器指定自定义日志标记。此选项目前仅受 Podman 中的 journald 日志驱动程序支持。 | |
| pod 应该加入的 CNI 网络的名称列表。 | |
| 如果需要,用于对注册表进行身份验证的用户名和密码。 | |
| 写入 quadlet 文件的目录路径。默认情况下,对于 root 用户,它将设置为  | |
| quadlet 文件的权限。 可以将  如果未指定  如果未指定  指定  | |
| 要写入的 quadlet 文件名。如果状态为 quadlet,则必须指定。 | |
| quadlet 文件的选项。提供通常的网络参数选项中缺少的内容,作为要添加的行列表。 | |
| 隐藏输出中的镜像拉取日志。 选项 
 | |
| 如果 pod 已经存在,则删除它并运行新的 pod。 选项 
 | |
| seccomp 配置文件的目录路径(默认为“/var/lib/kubelet/seccomp”)。此选项不适用于远程 Podman 客户端 | |
| 创建 pod 后启动它,或者只创建它。 选项 
 | |
| 联系注册表时需要 HTTPS 并验证证书(默认为 true)。如果显式设置为 true,则将使用 TLS 验证。如果设置为 false,则不会使用 TLS 验证。如果未指定,则除非目标注册表在 registries.conf 中列为不安全的注册表,否则将使用 TLS 验证。 选项 
 | |
| 如果需要,用于对注册表进行身份验证的用户名和密码。 | |
| 设置 pod 中所有容器的用户命名空间模式。它默认为 PODMAN_USERNS 环境变量。空值 (“”) 表示禁用用户命名空间。 | 
示例
- name: Play kube file
  containers.podman.podman_play:
    kube_file: ~/kube.yaml
    state: started
- name: Recreate pod from a kube file with options
  containers.podman.podman_play:
    kube_file: ~/kube.yaml
    state: started
    recreate: true
    annotations:
      greeting: hello
      greet_to: world
    userns: host
    log_opt:
      path: /tmp/my-container.log
      max_size: 10mb
- name: Create a Quadlet file
  containers.podman.podman_play:
    kube_file: ~/kube.yaml
    state: quadlet
    annotations:
      greeting: hello
      greet_to: world
    userns: host
    quadlet_filename: kube-pod
    quadlet_file_mode: '0640'
    quadlet_options:
      - "SetWorkingDirectory=yaml"
      - "ExitCodePropagation=any"
