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"