ansible_runner 包

子包

子模块

ansible_runner.exceptions 模块

exception ansible_runner.exceptions.AnsibleRunnerException[source]

基础类: Exception

通用 Runner 错误

exception ansible_runner.exceptions.CallbackError[source]

基础类: AnsibleRunnerException

回调中发生的异常

exception ansible_runner.exceptions.ConfigurationError[source]

基础类: AnsibleRunnerException

Runner 的错误配置

ansible_runner.interface 模块

ansible_runner.interface.get_ansible_config(action, config_file=None, only_changed=None, **kwargs)[source]

运行 ansible-config 命令以获取与 Ansible 配置相关的详细信息。

参数:
  • action (str) – 有效值为 listdumpview 之一,list 返回所有配置选项,dump 返回活动配置,view 返回配置文件的视图。

  • config_file (str) – 配置文件路径,默认为优先级中找到的第一个文件。

  • only_changed (bool) – 当设置为 True 时,布尔值仅返回已更改的配置。此参数仅在 action 设置为 dump 时适用。

  • runner_mode (str) – 适用的值为 pexpectsubprocess。默认设置为 subprocess

  • host_cwd (str) – 执行 executable_cmd 中命令的当前工作目录。

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • quiet (bool) – 禁用所有输出

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),同时执行命令。如果触发超时,它将强制取消执行。

  • process_isolation (bool) – 启用进程隔离,使用容器引擎(例如 podman)。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像。

  • container_volume_mounts (list) – 以 ‘host_dir:/container_dir:labels’ 形式表示的绑定挂载列表。(默认:None)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • container_workdir (str) – 容器内的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调函数,将在状态发生更改时被调用(例如:启动、运行、失败、成功、超时)

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据未完全生成,并且将此值设置为 ‘True’,则会引发 ‘AnsibleRunnerException’ 异常,如果设置为 ‘False’,则会记录调试消息并继续执行。默认值为 ‘False’

返回值:

返回响应和错误字符串的元组。如果 runner_mode 设置为 pexpect,则错误值为空,因为 pexpect 对 stdout 和 stderr 使用相同的输出描述符。

ansible_runner.interface.get_inventory(action, inventories, response_format=None, host=None, playbook_dir=None, vault_ids=None, vault_password_file=None, output_file=None, export=None, **kwargs)[source]

运行 ansible-inventory 命令以获取与清单相关的详细信息。

参数:
  • action (str) – 有效值为 graphhostlist 之一。 graph 返回清单图。 host 返回特定主机的信息,并用作清单脚本。 list 返回所有主机的信息,并用作清单脚本。

  • inventories (list) – 清单主机路径列表。

  • response_format (str) – 响应的输出格式。有效值可以是 jsonyamltoml 之一。默认值为 json。如果 actiongraph,则仅允许的值为 json

  • host (str) – 当 action 设置为 host 时,此参数用于获取特定主机的信息。

  • playbook_dir (str) – 此参数用于设置清单的相对路径。

  • vault_ids (str) – 要使用的 Vault 标识。

  • vault_password_file (str) – 要使用的 Vault 密码文件。

  • output_file (str) – 清单详细信息应发送到的文件路径。

  • export (bool) – 如果设置了布尔值,则表示以一种针对导出优化的方式,而不是 Ansible 处理它的精确方式。

  • runner_mode (str) – 适用的值为 pexpectsubprocess。默认设置为 subprocess

  • host_cwd (str) – 要在容器中(如果已启用)挂载的主机当前工作目录,并且将成为容器中的工作目录。

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • quiet (bool) – 禁用所有输出

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),同时执行命令。如果触发超时,它将强制取消执行。

  • process_isolation (bool) – 启用进程隔离,使用容器引擎(例如 podman)。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像。

  • container_volume_mounts (list) – 以 ‘host_dir:/container_dir:labels’ 形式表示的绑定挂载列表。(默认:None)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • container_workdir (str) – 容器内的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调函数,将在状态发生更改时被调用(例如:启动、运行、失败、成功、超时)

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据未完全生成,并且将此值设置为 ‘True’,则会引发 ‘AnsibleRunnerException’ 异常,如果设置为 ‘False’,则会记录调试消息并继续执行。默认值为 ‘False’

返回值:

返回响应和错误字符串的元组。如果 runner_mode 设置为 pexpect,则错误值为空,因为 pexpect 对 stdout 和 stderr 使用相同的输出描述符。如果 response_format 的值为 json,则返回一个 Python 字典对象。

ansible_runner.interface.get_plugin_docs(plugin_names, plugin_type=None, response_format=None, snippet=False, playbook_dir=None, module_path=None, **kwargs)[source]

运行 ansible-doc 命令以在前景获取插件文档,并在完成后返回 Runner 对象。

参数:
  • plugin_names (list) – 要获取文档的插件名称。

  • plugin_type (str) – plugins_names 中提到的插件的类型。有效值为 becomecachecallbackcliconfconnectionhttpapiinventorylookupnetconfshellvarsmodulestrategy。如果未提供值,则默认为 module

  • response_format (str) – 响应的输出格式。有效值可以是 jsonhuman,响应是 JSON 字符串或人类可读格式的纯文本。默认值为 json

  • snippet (bool) – 显示指定插件的剧本片段。

  • playbook_dir (str) – 此参数用于设置用于处理剧本相邻安装的插件的相对路径。

  • module_path (str) – 此参数将冒号分隔的路径前缀添加到模块库(默认值为 ~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules)。

  • runner_mode (str) – 适用的值为 pexpectsubprocess。默认设置为 subprocess

  • host_cwd (str) – 要在容器中(如果已启用)挂载的主机当前工作目录,并且将成为容器中的工作目录。

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • quiet (bool) – 禁用所有输出

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),同时执行命令。如果触发超时,它将强制取消执行。

  • process_isolation (bool) – 启用进程隔离,使用容器引擎(例如 podman)。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像。

  • container_volume_mounts (list) – 以 ‘host_dir:/container_dir:labels’ 形式表示的绑定挂载列表。(默认:None)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • container_workdir (str) – 容器内的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调函数,将在状态发生更改时被调用(例如:启动、运行、失败、成功、超时)

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据未完全生成,并且将此值设置为 ‘True’,则会引发 ‘AnsibleRunnerException’ 异常,如果设置为 ‘False’,则会记录调试消息并继续执行。默认值为 ‘False’

返回值:

返回响应和错误字符串的元组。如果 runner_mode 设置为 pexpect,则错误值为空,因为 pexpect 对 stdout 和 stderr 使用相同的输出描述符。如果 response_format 的值为 json,则返回一个 Python 字典对象。

ansible_runner.interface.get_plugin_docs_async(plugin_names, plugin_type=None, response_format=None, snippet=False, playbook_dir=None, module_path=None, **kwargs)[source]

在后台运行 ansible-doc 命令,该命令会立即启动。返回线程对象和 Runner 对象。

此命令使用与 ansible_runner.interface.get_plugin_docs() 相同的参数

返回值:

包含 threading.Thread 对象和 ansible_runner.runner.Runner 对象的元组。

ansible_runner.interface.get_plugin_list(list_files=None, response_format=None, plugin_type=None, playbook_dir=None, module_path=None, **kwargs)[source]

运行 ansible-doc 命令以获取已安装 Ansible 插件的列表。

参数:
  • list_files (bool) – 将布尔参数设置为 True 将返回插件的文件路径以及插件名称。

  • response_format (str) – 响应的输出格式。有效值可以是 jsonhuman,响应是 JSON 字符串或人类可读格式的纯文本。默认值为 json

  • plugin_type (str) – plugins_names 中提到的插件的类型。有效值为 becomecachecallbackcliconfconnectionhttpapiinventorylookupnetconfshellvarsmodulestrategy。如果未提供值,则默认为 module

  • playbook_dir (str) – 此参数用于设置用于处理剧本相邻安装的插件的相对路径。

  • module_path (str) – 此参数将冒号分隔的路径前缀添加到模块库(默认值为 ~/.ansible/plugins/modules:/usr/share/ansible/plugins/modules)。

  • runner_mode (str) – 适用的值为 pexpectsubprocess。默认设置为 subprocess

  • host_cwd (str) – 要在容器中(如果已启用)挂载的主机当前工作目录,并且将成为容器中的工作目录。

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • quiet (bool) – 禁用所有输出

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),同时执行命令。如果触发超时,它将强制取消执行。

  • process_isolation (bool) – 启用进程隔离,使用容器引擎(例如 podman)。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像。

  • container_volume_mounts (list) – 以 ‘host_dir:/container_dir:labels’ 形式表示的绑定挂载列表。(默认:None)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • container_workdir (str) – 容器内的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调函数,将在状态发生更改时被调用(例如:启动、运行、失败、成功、超时)

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据未完全生成,并且将此值设置为 ‘True’,则会引发 ‘AnsibleRunnerException’ 异常,如果设置为 ‘False’,则会记录调试消息并继续执行。默认值为 ‘False’

返回值:

返回响应和错误字符串的元组。如果 runner_mode 设置为 pexpect,则错误值为空,因为 pexpect 对 stdout 和 stderr 使用相同的输出描述符。如果 response_format 的值为 json,则返回一个 Python 字典对象。

ansible_runner.interface.get_role_argspec(role, collection=None, playbook_dir=None, **kwargs)[source]

运行 ansible-doc 命令以获取角色参数规范。

注意

版本添加:2.2

参数:
  • role (str) – 要查询的简单角色名称或完全限定的集合角色名称。

  • collection (str) – 如果指定,将与角色名称组合以形成完全限定的集合角色名称。如果提供此参数,则 role 参数不应完全限定。

  • playbook_dir (str) – 此参数用于设置相对路径以处理剧本相邻的已安装角色。

  • runner_mode (str) – 适用的值为 pexpectsubprocess。默认设置为 subprocess

  • host_cwd (str) – 要在容器中(如果已启用)挂载的主机当前工作目录,并且将成为容器中的工作目录。

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • quiet (bool) – 禁用所有输出

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),用于执行命令。如果超时触发,它将强制取消执行。

  • process_isolation (bool) – 使用容器引擎(如 podman)启用进程隔离。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像

  • container_volume_mounts (list) – 以 host_dir:/container_dir:labels 格式绑定的挂载列表。(默认值:None)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • container_workdir (str) – 容器内的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调,每当状态更改时(例如:启动、运行、失败、成功、超时)都会调用该回调

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据没有完全生成并且该值设置为“True”,则会引发“AnsibleRunnerException”异常。如果设置为“False”,则记录调试消息并继续执行。默认值为“False”

返回值:

响应和错误字符串的元组。响应是一个字典对象(如 ansible-doc JSON 输出返回),包含找到的每个角色,或者如果未找到任何角色则为空字典。

ansible_runner.interface.get_role_list(collection=None, playbook_dir=None, **kwargs)[source]

运行 ansible-doc 命令以获取已安装集合角色的列表。

仅返回定义了参数规范的角色。

注意

版本添加:2.2

参数:
  • collection (str) – 用于筛选结果的完全限定的集合名称。

  • playbook_dir (str) – 此参数用于设置相对路径以处理剧本相邻的已安装角色。

  • runner_mode (str) – 适用的值为 pexpectsubprocess。默认设置为 subprocess

  • host_cwd (str) – 要在容器中(如果已启用)挂载的主机当前工作目录,并且将成为容器中的工作目录。

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • quiet (bool) – 禁用所有输出

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),用于执行命令。如果超时触发,它将强制取消执行。

  • process_isolation (bool) – 使用容器引擎(如 podman)启用进程隔离。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像

  • container_volume_mounts (list) – 以 host_dir:/container_dir:labels 格式绑定的挂载列表。(默认值:None)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • container_workdir (str) – 容器内的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调,每当状态更改时(例如:启动、运行、失败、成功、超时)都会调用该回调

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据没有完全生成并且该值设置为“True”,则会引发“AnsibleRunnerException”异常。如果设置为“False”,则记录调试消息并继续执行。默认值为“False”

返回值:

响应和错误字符串的元组。响应是一个字典对象(如 ansible-doc JSON 输出返回),包含找到的每个角色,或者如果未找到任何角色则为空字典。

ansible_runner.interface.init_command_config(executable_cmd, cmdline_args=None, **kwargs)[source]

初始化 Runner() 实例

此函数将以相同的方式正确初始化 run_command() 和 run_command_async() 函数,并返回 Runner 的值实例。

请参阅传递给 ansible_runner.interface.run_command() 的参数

ansible_runner.interface.init_plugin_docs_config(plugin_names, plugin_type=None, response_format=None, snippet=False, playbook_dir=None, module_path=None, **kwargs)[source]

初始化 Runner() 实例

此函数将以相同的方式正确初始化 get_plugin_docs() 和 get_plugin_docs_async() 函数,并返回 Runner 的值实例。

请参阅传递给 ansible_runner.interface.get_plugin_docs() 的参数

ansible_runner.interface.init_runner(**kwargs)[source]

初始化 Runner() 实例

此函数将以相同的方式正确初始化 run() 和 run_async() 函数,并返回 Runner 的值实例。

请参阅传递给 ansible_runner.interface.run() 的参数

ansible_runner.interface.run(**kwargs)[source]

在前台运行 Ansible Runner 任务,并在完成后返回 Runner 对象。

参数:
  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • playbook (strlist) – 剧本(可以是剧本的列表或字典,也可以是相对于 private_data_dir/project 的路径),将在执行 Ansible 时由 runner 调用。

  • 模块 (str) – 运行程序执行 Ansible 时,将在 ad-hoc 模式下调用的模块。

  • 模块参数 (str) – 将提供给 ad-hoc 模式的模块参数。

  • 主机模式 (str) – 在 ad-hoc 模式下运行时匹配的主机模式。

  • 清单 (strdictlist) –

    用特定主机或主机列表覆盖清单目录/文件(在 private_data_dir/inventory 中提供)。它可以采用以下形式:

    • private_data_dir/inventory 目录中清单文件的路径或清单文件的绝对路径

    • 支持 YAML/json 清单结构的原生 python 字典

    • 一个文本 INI 格式的字符串

    • 清单来源列表,或空列表以禁用传递清单

  • 角色 (str) – 要执行的角色的名称。

  • 角色路径 (strlist) – 分配给 ANSIBLE_ROLES_PATH 的目录或目录列表

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • 额外变量 (dict) – 使用 -e 在运行时传递给 Ansible 的额外变量。额外变量也将从 env/extravars 中读取 private_data_dir

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • 命令行 (str) – 从 env/cmdline 中读取并传递给 Ansible 的命令行选项 private_data_dir

  • 抑制环境文件 (bool) – 禁用将文件写入 env,该文件可能存储敏感信息

  • 限制 (str) – 与 ansible 的 --limit 参数匹配,以进一步限制要使用的清单

  • 分叉 (int) – 控制 Ansible 并行并发性

  • 详细程度 (int) – 控制 ansible-playbook 输出的详细程度

  • quiet (bool) – 禁用所有输出

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),同时执行命令。如果触发超时,它将强制取消执行。

  • 流媒体 (str) – 可选地调用 ansible-runner 作为流媒体管道中的一个步骤

  • _input (io.FileIO) – 用于作为流媒体管道中输入的可选文件或类文件对象

  • _output (io.FileIO) – 用于作为流媒体管道中输出的可选文件或类文件对象

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调函数,将在状态发生更改时被调用(例如:启动、运行、失败、成功、超时)

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • 进程隔离 (bool) – 启用进程隔离,使用容器引擎(例如 podman)或沙箱(例如 bwrap)。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • 进程隔离路径 (str) – 隔离的剧本运行将用于暂存的路径。(默认:/tmp)

  • 进程隔离隐藏路径 (strlist) – 系统上应该从剧本运行中隐藏的路径或路径列表。

  • 进程隔离显示路径 (strlist) – 应该暴露给剧本运行的系统上的路径或路径列表。

  • 进程隔离只读路径 (strlist) – 应该作为只读方式暴露给剧本运行的系统上的路径或路径列表。

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像。

  • 容器卷挂载 (list) – 绑定挂载的列表,形式为 ‘host_dir:/container_dir。(默认:无)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • 目录隔离基础路径 (str) – 可选的路径将用作创建临时目录的基础路径,项目内容将被复制到此位置,然后用作剧本执行期间的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • 省略事件数据 (bool) – 从事件有效负载中省略额外的 ansible 事件数据(stdout 和事件仍然包含在内)

  • 仅失败事件数据 (bool) – 除非是失败事件,否则省略额外的 ansible 事件数据(stdout 和事件仍然包含在内)

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据未完全生成,并且将此值设置为 ‘True’,则会引发 ‘AnsibleRunnerException’ 异常,如果设置为 ‘False’,则会记录调试消息并继续执行。默认值为 ‘False’

返回值:

一个 ansible_runner.runner.Runner 对象,或者包含 rc 的简单对象(如果远程运行)

ansible_runner.interface.run_async(**kwargs)[source]

在后台运行 Ansible Runner 任务,该任务将立即启动。返回线程对象和 Runner 对象。

这使用与 ansible_runner.interface.run() 相同的参数

返回值:

包含 threading.Thread 对象和 ansible_runner.runner.Runner 对象的元组。

ansible_runner.interface.run_command(executable_cmd, cmdline_args=None, **kwargs)[source]

在前台运行(Ansible)命令,并在完成后返回 Runner 对象。

参数:
  • 可执行命令 (str) – 要执行的命令。

  • 命令行参数 (list) – 要传递给可执行命令的参数列表。

  • 输入文件描述符 (int) – 此参数适用于 runner_mode 设置为 subprocess 的情况,它提供与运行命令的子进程交互的输入文件描述符。

  • 输出文件描述符 (int) – 用于流式传输命令执行输出的文件描述符。

  • 错误文件描述符 (int) – 此参数适用于 runner_mode 设置为 subprocess 的情况,它提供用于读取执行命令时收到的错误的文件描述符。

  • 运行程序模式 (str) – 适用的值为 pexpectsubprocess。如果 input_fd 参数的值已设置,或者可执行命令是 ansible-configansible-docansible-galaxy 之一,则默认值设置为 subprocess,否则在其他情况下设置为 pexpect

  • host_cwd (str) – 要在容器中(如果已启用)挂载的主机当前工作目录,并且将成为容器中的工作目录。

  • envvars (dict) – 在运行 Ansible 时要使用的环境变量。环境变量也将从 private_data_dir 中的 env/envvars 中读取。

  • passwords (dict) – 包含密码提示模式和响应值的字典,用于处理 Ansible 的输出。密码也将从 private_data_dir 中的 env/passwords 中读取。

  • settings (dict) – 包含 ansible-runner 运行时环境的设置值的字典。这些也将从 private_data_dir 中的 env/settings 中读取。

  • ssh_key (str) – 传递给 ssh-agent 的 ssh 私钥,作为 ansible-playbook 运行的一部分。

  • quiet (bool) – 禁用所有输出

  • json_mode (bool) – 在控制台和 stdout 文件中存储事件数据,而不是 stdout。

  • artifact_dir (str) – 存放工件的目录的路径,默认为私有数据目录下的 ‘artifacts’。

  • project_dir (str) – 剧本内容的路径,默认为私有数据目录下的 ‘project’。

  • rotate_artifacts (int) – 最多保留 n 个工件目录,使用值为 0 的值禁用,这也是默认值。

  • timeout (int) – 将传递给 pexpectsubprocess 调用(基于所选的 runner_mode)的超时值(以秒为单位),同时执行命令。如果触发超时,它将强制取消执行。

  • process_isolation (bool) – 启用进程隔离,使用容器引擎(例如 podman)。

  • process_isolation_executable (str) – 用于隔离执行的进程隔离可执行文件或容器引擎。(默认:podman)

  • container_image (str) – 运行 Ansible 任务时要使用的容器镜像。

  • container_volume_mounts (list) – 以 ‘host_dir:/container_dir:labels’ 形式表示的绑定挂载列表。(默认:None)

  • container_options (list) – 传递给执行引擎的容器选项列表。

  • container_workdir (str) – 容器内的工作目录。

  • fact_cache (str) – 将用作工件目录中事实缓存子目录名称的字符串。这仅用于 ‘jsonfile’ 类型的事实缓存。

  • fact_cache_type (str) – 要使用的事实缓存类型的字符串。默认为 ‘jsonfile’。

  • private_data_dir (str) – 包含调用 Runner 模块所需所有 Runner 元数据的目录。输出工件也将存储在此处,以便以后使用。

  • ident (str) – 本次 Runner 调用的运行标识符。将用于创建和命名保存调用结果的工件目录。

  • event_handler (Callable) – 一个可选的回调函数,当 Runner 本身接收到事件时将被调用,返回 True 以保留事件

  • cancel_callback (Callable) – 一个可选的回调函数,可以通知 Runner 取消(返回 True)或不取消(返回 False)

  • finished_callback (Callable) – 一个可选的回调函数,将在进程清理后关闭时被调用。

  • status_handler (Callable) – 一个可选的回调函数,将在状态发生更改时被调用(例如:启动、运行、失败、成功、超时)

  • artifacts_handler (Callable) – 一个可选的回调函数,将在运行结束时被调用,用于处理运行产生的工件。

  • check_job_event_data (bool) – 检查作业事件数据是否完全生成。如果事件数据未完全生成,并且将此值设置为 ‘True’,则会引发 ‘AnsibleRunnerException’ 异常,如果设置为 ‘False’,则会记录调试消息并继续执行。默认值为 ‘False’

返回值:

返回响应、错误字符串和返回码的元组。如果 runner_mode 设置为 pexpect,则错误值为空,因为 pexpect 对 stdout 和 stderr 使用相同的输出描述符。

ansible_runner.interface.run_command_async(executable_cmd, cmdline_args=None, **kwargs)[source]

在后台运行(Ansible)命令,该命令将立即启动。返回线程对象和 Runner 对象。

这使用与 ansible_runner.interface.run_command() 相同的参数

返回值:

包含 threading.Thread 对象和 ansible_runner.runner.Runner 对象的元组。

ansible_runner.loader 模块

class ansible_runner.loader.ArtifactLoader(base_path: str)[source]

Bases: object

处理从磁盘加载和缓存文件内容

此类将加载文件内容并尝试将内容反序列化为 JSON 或 YAML。如果无法反序列化文件内容,则内容将作为字符串返回给调用者。

反序列化的文件内容存储为实例中的缓存对象,以避免对后续加载相同文件的调用进行任何额外的磁盘读取操作。

abspath(path: str) str[source]

将路径转换为绝对路径。

参数:

path (str) – 要转换为绝对路径的路径。

返回值:

文件的绝对路径。

isfile(path: str) bool[source]

检查路径是否为文件。

参数:

path (str) – 要检查的文件的路径。如果路径是相对的,它将被扩展为绝对路径。

返回值:

如果路径是文件,则为 True,否则为 False。

load_file(path: str, objtype: Any | None = None, encoding='utf-8') bytes | str | dict | None[source]

加载由 path 指定的文件。

此方法将首先尝试从缓存加载文件内容,如果缓存未命中,它将从磁盘加载内容。

参数:
  • path (str) – 要加载的文件的完整或相对路径。

  • objtype (Any) – 文件内容的对象类型。这用于将反序列化内容类型检查与从磁盘加载的内容进行比较。如果 objtype 是 str,则忽略序列化。仅支持 Mapping 或 str 类型。

  • encoding (str) – 文件内容文本编码。

返回值:

反序列化的文件内容,可以是字符串对象或字典对象。

引发:

在文件加载或反序列化期间出错时,引发 ConfigurationError。

ansible_runner.runner 模块

class ansible_runner.runner.Runner(config, cancel_callback=None, remove_partials=True, event_handler=None, artifacts_handler=None, finished_callback=None, status_handler=None)[source]

Bases: object

event_callback(event_data)[source]

针对每个 Ansible 事件调用,以使用事件数据收集 stdout 并将其存储以备后用。

property events

一个生成器,将按从 Ansible 发出的顺序返回所有 ansible 作业事件。

示例:

 {
    "event": "runner_on_ok",
    "uuid": "00a50d9c-161a-4b74-b978-9f60becaf209",
    "stdout": "ok: [localhost] => {\r\n    \"   msg\":\"Test!\"\r\n}",
    "counter": 6,
    "pid": 740,
    "created": "2018-04-05T18:24:36.096725",
    "end_line": 10,
    "start_line": 7,
    "event_data": {
       "play_pattern": "all",
       "play": "all",
       "task": "debug",
       "task_args": "msg=Test!",
       "remote_addr": "localhost",
       "res": {
          "msg": "Test!",
          "changed": false,
          "_ansible_verbose_always": true,
          "_ansible_no_log": false
       },
       "pid": 740,
       "play_uuid": "0242ac11-0002-443b-cdb1-000000000006",
       "task_uuid": "0242ac11-0002-443b-cdb1-000000000008",
       "event_loop": null,
       "playbook_uuid": "634edeee-3228-4c17-a1b4-f010fdd42eb2",
       "playbook": "test.yml",
       "task_action": "debug",
       "host": "localhost",
       "task_path": "/tmp/demo/project/test.yml:3"
    }
}
get_fact_cache(host)[source]

仅当 fact_cache_type 为“jsonfile”时,获取整个事实缓存。

classmethod handle_termination(pid, pidfile=None)[source]

用于终止由 pexpect 生成的子进程的内部方法,该子进程表示对 runner 的调用。

参数:
  • pid – 正在运行作业的进程 ID。

  • pidfile – 守护程序的 PID 文件。

host_events(host)[source]

给定主机名,这将返回在该主机上执行的所有任务事件。

kill_container()[source]

用于终止用于作业隔离的容器的内部方法。

run()[source]

启动在 self.config(一个 RunnerConfig 对象)中配置的 Ansible 任务,在调用完成时返回。

set_fact_cache(host, data)[source]

仅当 fact_cache_type 为“jsonfile”时,设置整个事实缓存数据。

property stats

返回 Ansible 运行的最终高级统计信息。

示例

{‘dark’: {}, ‘failures’: {}, ‘skipped’: {}, ‘ok’: {u’localhost’: 2}, ‘processed’: {u’localhost’: 1}}

status_callback(status)[source]
property stderr

返回表示 Ansible 运行的 stderr 的开放文件句柄。

property stdout

返回一个指向 Ansible 运行的标准输出的打开文件句柄。

ansible_runner.runner_config 模块

ansible_runner.utils 模块

class ansible_runner.utils.Bunch(**kwargs)[source]

Bases: object

将一组变量收集到一个对象中。这只是对 Alex Martelli 和 Doug Hudgeon 的 Bunch 模式的稍微修改。

get(key)[source]
update(**kwargs)[source]
class ansible_runner.utils.OutputEventFilter(handle: StreamReaderWriter, event_callback: Callable[[dict], None], suppress_ansible_output: bool = False, output_json: bool = False)[source]

Bases: object

类似文件的对象,用于在标准输出数据中查找编码后的作业事件。

EVENT_DATA_RE = re.compile('\\x1b\\[K((?:[A-Za-z0-9+/=]+\\x1b\\[\\d+D)+)\\x1b\\[K')
close() None[source]
flush() None[source]
write(data: str) None[source]
ansible_runner.utils.args2cmdline(*args)[source]
ansible_runner.utils.check_isolation_executable_installed(isolation_executable: str) bool[source]

检查进程隔离可执行文件是否已安装。

参数:

isolation_executable (str) – 可执行文件名(例如 podman、docker、bwrap)。

返回值:

如果可执行文件已安装,则为 True,否则为 False。

ansible_runner.utils.cleanup_artifact_dir(path: str, num_keep: int = 0) None[source]
ansible_runner.utils.cleanup_folder(folder: str) bool[source]

删除文件夹,根据是否发生更改返回 True 或 False。

ansible_runner.utils.cli_mounts()[source]
ansible_runner.utils.collect_new_events(event_path: str, old_events: dict) Iterator[tuple[dict, dict]][source]

收集新的事件到“事件”生成器属性。

ansible_runner.utils.dump_artifact(obj: str, path: str, filename: str | None = None) str[source]

将工件写入指定路径的磁盘。

参数:
  • obj (str) – 要在指定路径中写入磁盘的字符串对象。工件文件名将自动创建。

  • path (str) – 工件数据目录的完整路径。

  • filename (str) – 要将工件写入的文件名。如果未提供文件名,则将生成一个文件名。

返回值:

生成的工件的完整路径文件名。

ansible_runner.utils.dump_artifacts(kwargs: dict) None[source]

检查 kwargs 并将对象转储到磁盘。

ansible_runner.utils.ensure_str(s: Any, encoding='utf-8', errors='strict') str[source]

s强制转换为str

  • str -> str

  • bytes -> 解码为str

ansible_runner.utils.get_callback_dir() str[source]
ansible_runner.utils.get_executable_path(name: str) str[source]
ansible_runner.utils.get_plugin_dir() str[source]
ansible_runner.utils.is_dir_owner(directory: str) bool[source]

如果当前用户是目录的所有者,则返回 True。

ansible_runner.utils.isinventory(obj: Any) bool[source]

检查对象并返回它是否是清单。

参数:

obj (Any) – 要由此函数检查的对象。

返回值:

如果对象是清单字典,则为 True;如果对象不是清单字典,则为 False。

ansible_runner.utils.isplaybook(obj: Any) bool[source]

检查对象并返回它是否是剧本。

参数:

obj (Any) – 要由此函数检查的对象。

返回值:

如果对象是列表,则为 True;如果对象不是列表,则为 False。

ansible_runner.utils.open_fifo_write(path: str, data: str | bytes) None[source]

在一个新线程中打开名为管道命名的 fifo。

这将阻塞线程,直到外部进程(如 ssh-agent)从管道中读取数据。

ansible_runner.utils.register_for_cleanup(folder: str) None[source]

提供一个文件夹的路径,以确保在执行结束时将其删除。在调用此函数时,该文件夹不必存在。

ansible_runner.utils.sanitize_container_name(original_name: str) str[source]

Docker 和 podman 仅接受容器名称中的某些字符。此函数接收用户指定的名称,并替换无效字符,使其可在 docker/podman CLI 命令中使用。

参数:

original_name (str) – 容器名称,可能包含无效字符。

ansible_runner.utils.sanitize_json_response(data: str) str[source]

从 Ansible 命令行实用程序发出的响应消息中删除警告消息。

参数:

data (str) – 要进行清理的字符串数据。

ansible_runner.utils.signal_handler() Callable[[], bool] | None[source]