containers.podman.podman_container_exec 模块 – 在运行的容器中执行命令。

注意

此模块是 containers.podman 集合(版本 1.16.2)的一部分。

如果您使用的是 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install containers.podman。您需要进一步的要求才能使用此模块,有关详细信息,请参阅要求

要在 playbook 中使用它,请指定:containers.podman.podman_container_exec

概要

  • 在运行的容器中执行命令。

要求

以下要求需要在执行此模块的主机上满足。

  • podman

参数

参数

注释

argv

列表 / 元素=字符串

将命令作为列表而不是字符串传递。

需要 commandargs 之一。

command

字符串

要在容器中运行的命令。

需要 commandargs 之一。

detach

布尔值

如果为 true,则命令在后台运行。

执行会话在完成后会自动删除。

选择

  • false ←(默认)

  • true

env

字典

设置环境变量。

executable

字符串

podman 可执行文件的路径。

默认值: "podman"

name

字符串 / 必需

在其中执行命令的容器的名称。

privileged

布尔值

向容器授予扩展权限。

选择

  • false ←(默认)

  • true

tty

布尔值

分配一个伪 TTY。

选择

  • false ←(默认)

  • true

user

字符串

用于指定命令的用户名或 UID,以及可选的组名或 GID。

用户和组都可以是符号或数字。

workdir

字符串

容器内的工作目录。

注释

注意

  • 有关 podman-exec(1) 的详细信息,请参阅Podman 文档

示例

- name: Execute a command with workdir
  containers.podman.podman_container_exec:
    name: ubi8
    command: "cat redhat-release"
    workdir: /etc

- name: Execute a command with a list of args and environment variables
  containers.podman.podman_container_exec:
    name: test_container
    argv:
      - /bin/sh
      - -c
      - echo $HELLO $BYE
    env:
      HELLO: hello world
      BYE: goodbye world

- name: Execute command in background by using detach
  containers.podman.podman_container_exec:
    name: detach_container
    command: "cat redhat-release"
    detach: true

返回值

常见的返回值在此处文档中记录,以下是此模块特有的字段

描述

exec_id

字符串

执行会话的 ID。

已返回:成功并且 detach=true

示例: "f99002e34c1087fd1aa08d5027e455bf7c2d6b74f019069acf6462a96ddf2a47"

rc

整数

在容器中执行的命令的退出代码。

已返回:成功

示例: 0

stderr

字符串

在容器中执行的命令的标准错误输出。

已返回:成功

stdout

字符串

在容器中执行的命令的标准错误输出。

已返回:成功

作者

  • Takuya Nishimura (@nishipy)