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"