Playbook 关键字

这些是通用 playbook 对象可用的关键字。关键字是配置 Ansible 行为的多个来源之一。有关每个来源相对优先级的详细信息,请参阅 控制 Ansible 的行为:优先级规则

注意

请注意

  • 此处未反映指令的别名,也未包含可变指令。例如,任务中的 action 可以替换为任何 Ansible 模块的名称。

  • 这些关键字目前没有 version_added 信息

  • 某些关键字设置的是其内部对象的默认值,而不是对象本身的默认值

Play

any_errors_fatal

强制将任何主机上未处理的任务错误传播到所有主机,并结束该 play。

become

布尔值,控制在执行 Task 时是否使用权限提升。由 become 插件实现。请参阅 Become 插件

become_exe

用于提升权限的可执行程序路径。由 become 插件实现。请参阅 Become 插件

become_flags

become 为 True 时,传递给权限提升程序的标志字符串。

become_method

要使用的权限提升方法(例如 sudo 或 su)。

become_user

使用权限提升后“变为”的用户。远程/登录用户必须拥有成为该用户的权限。

check_mode

一个布尔值,控制任务是正常运行,还是避免对目标进行更改并尝试报告它本应执行的操作(检查模式/空运行)。请参阅 验证任务:检查模式和 diff 模式

collections

用于搜索模块、插件和角色的集合命名空间列表。请参阅 在 playbook 中使用集合

注意

角色内的任务不会从 play 继承 collections 的值。若要让角色搜索集合列表,请在角色的 meta/main.yml 中使用 collections 关键字。

connection

允许您更改任务在目标上执行时所使用的连接插件。请参阅 使用连接插件

debugger

根据任务结果的状态启用调试任务。请参阅 调试任务

diff

切换开关,用于决定任务是否返回“差异(diff)”信息。

environment

一个字典,在任务执行时会被转换为环境变量提供给任务。这只能与模块一起使用。它不支持任何其他类型的插件、Ansible 本身或其配置,它只是为负责执行任务的代码设置变量。不建议以此方式传递机密数据。

fact_path

为由 gather_facts 控制的事实收集插件设置事实路径选项。

force_handlers

即使主机在 play 期间失败,也会强制执行已通知的处理程序(handler)。如果 play 本身失败,则不会触发。

gather_facts

一个布尔值,控制 play 是否自动运行‘setup’任务来收集主机的事实。

gather_subset

允许您向由 gather_facts 控制的事实收集插件传递子集选项。

gather_timeout

允许您为由 gather_facts 控制的事实收集插件设置超时时间。

handlers

包含作为处理程序(handler)处理的任务的区域,它们不会正常执行,只有在每组任务完成后被通知时才会执行。处理程序的 listen 字段不支持模板化。

hosts

一组组名、主机名或主机模式,它们被解析为该 play 的目标主机列表。

ignore_errors

布尔值,允许您忽略任务失败并继续执行 play。它不影响连接错误。

ignore_unreachable

布尔值,允许您忽略因主机无法访问而导致的任务失败,并继续执行 play。这不会影响其他任务错误(请参阅 ignore_errors),但对于不稳定的/临时的主机组非常有用。

max_fail_percentage

可用于在当前批次中达到给定失败百分比的主机后中止运行。这仅适用于线性或线性派生策略。

module_defaults

指定模块的默认参数值。

name

标识符。可用于文档说明,或在任务/处理程序中使用。

no_log

控制信息披露的布尔值。

order

控制主机在执行 play 时的排序方式。可能的值为 inventory(默认)、sorted、reverse_sorted、reverse_inventory 和 shuffle。

port

用于覆盖连接中使用的默认端口。

post_tasks

tasks 部分之后执行的任务列表。

pre_tasks

roles 之前执行的任务列表。

remote_user

通过连接插件登录到目标时使用的用户。

roles

要导入到 play 中的角色列表。

run_once

布尔值,将绕过主机循环,强制任务尝试在第一个可用的主机上执行,之后将任何结果和事实应用到同一批次中的所有活动主机。

serial

明确定义 Ansible 如何在 play 的目标上分批执行当前 play。请参阅 使用 serial 设置批处理大小

strategy

允许您选择用于 play 的策略插件。请参阅 策略插件

tags

应用于任务或包含的任务的标签,这允许从命令行选择任务子集。

tasks

play 中要执行的主要任务列表,它们在 roles 之后、post_tasks 之前运行。

调节 (throttle)

在任务、块和 playbook 级别限制并发任务运行的数量。这与 forks 和 serial 设置无关,但不能设置高于这些限制的值。例如,如果 forks 设置为 10,而 throttle 设置为 15,则最多并行操作 10 台主机。

timeout

任务操作执行的时间限制,如果超过,Ansible 将中断该进程。超时时间不包括模板化或循环。

validate_argspec

未说明!!

vars

变量的字典/映射。

vars_files

包含要在 play 中包含的变量的文件列表。

vars_prompt

需要提示输入的变量列表。

Role

any_errors_fatal

强制将任何主机上未处理的任务错误传播到所有主机,并结束该 play。

become

布尔值,控制在执行 Task 时是否使用权限提升。由 become 插件实现。请参阅 Become 插件

become_exe

用于提升权限的可执行程序路径。由 become 插件实现。请参阅 Become 插件

become_flags

become 为 True 时,传递给权限提升程序的标志字符串。

become_method

要使用的权限提升方法(例如 sudo 或 su)。

become_user

使用权限提升后“变为”的用户。远程/登录用户必须拥有成为该用户的权限。

check_mode

一个布尔值,控制任务是正常运行,还是避免对目标进行更改并尝试报告它本应执行的操作(检查模式/空运行)。请参阅 验证任务:检查模式和 diff 模式

collections

用于搜索模块、插件和角色的集合命名空间列表。请参阅 在 playbook 中使用集合

注意

角色内的任务不会从 play 继承 collections 的值。若要让角色搜索集合列表,请在角色的 meta/main.yml 中使用 collections 关键字。

connection

允许您更改任务在目标上执行时所使用的连接插件。请参阅 使用连接插件

debugger

根据任务结果的状态启用调试任务。请参阅 调试任务

delegate_facts

布尔值,允许您将事实应用到委派的主机,而不是 inventory_hostname。

delegate_to

用于代替目标(inventory_hostname)执行任务的主机。来自委派主机的连接变量也将用于该任务。

diff

切换开关,用于决定任务是否返回“差异(diff)”信息。

environment

一个字典,在任务执行时会被转换为环境变量提供给任务。这只能与模块一起使用。它不支持任何其他类型的插件、Ansible 本身或其配置,它只是为负责执行任务的代码设置变量。不建议以此方式传递机密数据。

ignore_errors

布尔值,允许您忽略任务失败并继续执行 play。它不影响连接错误。

ignore_unreachable

布尔值,允许您忽略因主机无法访问而导致的任务失败,并继续执行 play。这不会影响其他任务错误(请参阅 ignore_errors),但对于不稳定的/临时的主机组非常有用。

module_defaults

指定模块的默认参数值。

name

标识符。可用于文档说明,或在任务/处理程序中使用。

no_log

控制信息披露的布尔值。

port

用于覆盖连接中使用的默认端口。

remote_user

通过连接插件登录到目标时使用的用户。

run_once

布尔值,将绕过主机循环,强制任务尝试在第一个可用的主机上执行,之后将任何结果和事实应用到同一批次中的所有活动主机。

tags

应用于任务或包含的任务的标签,这允许从命令行选择任务子集。

调节 (throttle)

在任务、块和 playbook 级别限制并发任务运行的数量。这与 forks 和 serial 设置无关,但不能设置高于这些限制的值。例如,如果 forks 设置为 10,而 throttle 设置为 15,则最多并行操作 10 台主机。

timeout

任务操作执行的时间限制,如果超过,Ansible 将中断该进程。超时时间不包括模板化或循环。

vars

变量的字典/映射。

when

条件表达式,决定是否运行任务的迭代。

Block

always

块中的任务列表,无论块中是否存在错误,它们都会执行。

any_errors_fatal

强制将任何主机上未处理的任务错误传播到所有主机,并结束该 play。

become

布尔值,控制在执行 Task 时是否使用权限提升。由 become 插件实现。请参阅 Become 插件

become_exe

用于提升权限的可执行程序路径。由 become 插件实现。请参阅 Become 插件

become_flags

become 为 True 时,传递给权限提升程序的标志字符串。

become_method

要使用的权限提升方法(例如 sudo 或 su)。

become_user

使用权限提升后“变为”的用户。远程/登录用户必须拥有成为该用户的权限。

block

块中的任务列表。

check_mode

一个布尔值,控制任务是正常运行,还是避免对目标进行更改并尝试报告它本应执行的操作(检查模式/空运行)。请参阅 验证任务:检查模式和 diff 模式

collections

用于搜索模块、插件和角色的集合命名空间列表。请参阅 在 playbook 中使用集合

注意

角色内的任务不会从 play 继承 collections 的值。若要让角色搜索集合列表,请在角色的 meta/main.yml 中使用 collections 关键字。

connection

允许您更改任务在目标上执行时所使用的连接插件。请参阅 使用连接插件

debugger

根据任务结果的状态启用调试任务。请参阅 调试任务

delegate_facts

布尔值,允许您将事实应用到委派的主机,而不是 inventory_hostname。

delegate_to

用于代替目标(inventory_hostname)执行任务的主机。来自委派主机的连接变量也将用于该任务。

diff

切换开关,用于决定任务是否返回“差异(diff)”信息。

environment

一个字典,在任务执行时会被转换为环境变量提供给任务。这只能与模块一起使用。它不支持任何其他类型的插件、Ansible 本身或其配置,它只是为负责执行任务的代码设置变量。不建议以此方式传递机密数据。

ignore_errors

布尔值,允许您忽略任务失败并继续执行 play。它不影响连接错误。

ignore_unreachable

布尔值,允许您忽略因主机无法访问而导致的任务失败,并继续执行 play。这不会影响其他任务错误(请参阅 ignore_errors),但对于不稳定的/临时的主机组非常有用。

module_defaults

指定模块的默认参数值。

name

标识符。可用于文档说明,或在任务/处理程序中使用。

no_log

控制信息披露的布尔值。

notify

当任务返回‘changed=True’状态时要通知的处理程序列表。

port

用于覆盖连接中使用的默认端口。

remote_user

通过连接插件登录到目标时使用的用户。

rescue

如果主 block 列表中出现任务错误,则在 block 中运行的任务列表。

run_once

布尔值,将绕过主机循环,强制任务尝试在第一个可用的主机上执行,之后将任何结果和事实应用到同一批次中的所有活动主机。

tags

应用于任务或包含的任务的标签,这允许从命令行选择任务子集。

调节 (throttle)

在任务、块和 playbook 级别限制并发任务运行的数量。这与 forks 和 serial 设置无关,但不能设置高于这些限制的值。例如,如果 forks 设置为 10,而 throttle 设置为 15,则最多并行操作 10 台主机。

timeout

任务操作执行的时间限制,如果超过,Ansible 将中断该进程。超时时间不包括模板化或循环。

vars

变量的字典/映射。

when

条件表达式,决定是否运行任务的迭代。

Task

action

任务要执行的‘action’,它通常转换为 C(module) 或动作插件。

any_errors_fatal

强制将任何主机上未处理的任务错误传播到所有主机,并结束该 play。

args

向任务添加参数的辅助方式。接收一个字典,其中键映射到选项,值映射到内容。

async

如果 C(action) 支持,则异步运行任务;值为最大运行时间(秒)。

become

布尔值,控制在执行 Task 时是否使用权限提升。由 become 插件实现。请参阅 Become 插件

become_exe

用于提升权限的可执行程序路径。由 become 插件实现。请参阅 Become 插件

become_flags

become 为 True 时,传递给权限提升程序的标志字符串。

become_method

要使用的权限提升方法(例如 sudo 或 su)。

become_user

使用权限提升后“变为”的用户。远程/登录用户必须拥有成为该用户的权限。

changed_when

覆盖任务正常‘changed’状态的条件表达式。

check_mode

一个布尔值,控制任务是正常运行,还是避免对目标进行更改并尝试报告它本应执行的操作(检查模式/空运行)。请参阅 验证任务:检查模式和 diff 模式

collections

用于搜索模块、插件和角色的集合命名空间列表。请参阅 在 playbook 中使用集合

注意

角色内的任务不会从 play 继承 collections 的值。若要让角色搜索集合列表,请在角色的 meta/main.yml 中使用 collections 关键字。

connection

允许您更改任务在目标上执行时所使用的连接插件。请参阅 使用连接插件

debugger

根据任务结果的状态启用调试任务。请参阅 调试任务

delay

重试之间的延迟秒数。此设置仅与 until 结合使用。

delegate_facts

布尔值,允许您将事实应用到委派的主机,而不是 inventory_hostname。

delegate_to

用于代替目标(inventory_hostname)执行任务的主机。来自委派主机的连接变量也将用于该任务。

diff

切换开关,用于决定任务是否返回“差异(diff)”信息。

environment

一个字典,在任务执行时会被转换为环境变量提供给任务。这只能与模块一起使用。它不支持任何其他类型的插件、Ansible 本身或其配置,它只是为负责执行任务的代码设置变量。不建议以此方式传递机密数据。

failed_when

覆盖任务正常‘failed’状态的条件表达式。

ignore_errors

布尔值,允许您忽略任务失败并继续执行 play。它不影响连接错误。

ignore_unreachable

布尔值,允许您忽略因主机无法访问而导致的任务失败,并继续执行 play。这不会影响其他任务错误(请参阅 ignore_errors),但对于不稳定的/临时的主机组非常有用。

local_action

与 action 相同,但还隐含了 delegate_to: localhost

loop

接收一个供任务迭代的列表,将每个列表元素保存到 item 变量中(可通过 loop_control 配置)。

loop_control

此处的多个键允许您修改/设置任务中的循环行为。请参阅 向循环添加控制

module_defaults

指定模块的默认参数值。

name

标识符。可用于文档说明,或在任务/处理程序中使用。

no_log

控制信息披露的布尔值。

notify

当任务返回‘changed=True’状态时要通知的处理程序列表。

poll

设置异步任务的轮询间隔(秒,默认为 10 秒)。

port

用于覆盖连接中使用的默认端口。

register

将包含任务状态和模块返回数据的变量名称。

remote_user

通过连接插件登录到目标时使用的用户。

retries

until 循环中放弃前的重试次数。此设置仅与 until 结合使用。

run_once

布尔值,将绕过主机循环,强制任务尝试在第一个可用的主机上执行,之后将任何结果和事实应用到同一批次中的所有活动主机。

tags

应用于任务或包含的任务的标签,这允许从命令行选择任务子集。

调节 (throttle)

在任务、块和 playbook 级别限制并发任务运行的数量。这与 forks 和 serial 设置无关,但不能设置高于这些限制的值。例如,如果 forks 设置为 10,而 throttle 设置为 15,则最多并行操作 10 台主机。

timeout

任务操作执行的时间限制,如果超过,Ansible 将中断该进程。超时时间不包括模板化或循环。

until

此关键字隐含了一个‘retries 循环’,它将持续运行,直到满足此处提供的条件或达到 retries 限制。

vars

变量的字典/映射。

when

条件表达式,决定是否运行任务的迭代。

with_<lookup_plugin>

loop 相同,但会自动添加任何查找插件的输出以生成项目列表。