特殊变量

魔法变量

这些变量不能由用户直接设置;Ansible 将始终覆盖它们以反映内部状态。

ansible_check_mode

布尔值,指示我们是否处于检查模式

ansible_collection_name

正在执行的任务所属的集合的名称。格式为 namespace.collection

ansible_config_file

使用的 Ansible 配置文件的完整路径

ansible_dependent_role_names

当前导入到当前 playbook 中作为其他 playbook 依赖项的角色名称

ansible_diff_mode

布尔值,指示我们是否处于 diff 模式

ansible_forks

整数,反映此运行可用的最大分支数

ansible_index_var

提供给 loop_control.index_var 的值的名称。在 2.9 中添加

ansible_inventory_sources

用作清单的源列表

ansible_limit

Ansible 当前执行的 --limit CLI 选项的内容

ansible_loop

通过 loop_control.extended 启用时,包含扩展循环信息的字典/映射

ansible_loop_var

提供给 loop_control.loop_var 的值的名称。在 2.8 中添加

ansible_parent_role_names

当当前角色通过 include_roleimport_role 操作执行时,此变量包含所有父角色的列表,最近的角色(换句话说,包含/导入此角色的角色)是列表中的第一个项。当发生多次包含时,此列表将 _last_ 角色(换句话说,包含此角色的角色)列为列表中的 _first_ 项。此列表中也可能存在多次特定的角色。

例如:当角色 **A** 包含角色 **B** 时,在角色 B 中,ansible_parent_role_names 将等于 ['A']。如果角色 **B** 然后包含角色 **C**,则该列表变为 ['B', 'A']

ansible_parent_role_paths

当当前角色通过 include_roleimport_role 操作执行时,此变量包含所有父角色路径的列表,最近的角色(换句话说,包含/导入此角色的角色)是列表中的第一个项。请参阅 ansible_parent_role_names 获取此列表中项的顺序。

ansible_play_batch

当前 playbook 运行中受 serial(又名“批次”)限制的活动主机列表。失败/无法访问的主机不被视为“活动”。

ansible_play_hosts

当前 playbook 运行中的主机列表,不受 serial 限制。失败/无法访问的主机将从此列表中排除。

ansible_play_hosts_all

playbook 定位的所有主机的列表

ansible_play_name

当前执行的 playbook 的名称。在 2.8 中添加。(playbook 的 name 属性,而不是 playbook 的文件名。)

ansible_play_role_names

当前导入到当前 playbook 中的角色名称。此列表 **不** 包含通过依赖项隐式包含的角色名称。

ansible_playbook_python

Ansible 在控制节点上使用的 python 解释器的路径

ansible_role_name

完全限定的集合角色名称,格式为 namespace.collection.role_name

ansible_role_names

当前导入到当前 playbook 中的角色名称,或引用为导入到当前 playbook 的角色的依赖项的角色。

ansible_run_tags

--tags CLI 选项的内容,该选项指定当前运行将包含哪些标签。请注意,如果未传递 --tags,则此变量将默认为 ["all"]

ansible_search_path

操作插件和查找的当前搜索路径,换句话说,当您执行 template: src=myfile 时,我们在哪里搜索相对路径

ansible_skip_tags

--skip-tags CLI 选项的内容,该选项指定当前运行将跳过哪些标签。

ansible_verbosity

Ansible 的当前详细级别设置

ansible_version

包含有关当前正在运行的 Ansible 版本信息的字典/映射,它具有以下键:full、major、minor、revision 和 string。

group_names

当前主机所属的组列表,它始终反映 inventory_hostname 并忽略委派。

groups

一个字典/映射,其中包含清单中的所有组,并且每个组都有属于它的主机列表

hostvars

一个字典/映射,其中包含清单中的所有主机以及分配给它们变量

inventory_dir

首次定义 inventory_hostname 的清单源的目录。这始终反映 inventory_hostname 并忽略委派。

inventory_hostname

在 playbook 中迭代的“当前”主机的清单名称。这不受委派的影响,它始终反映任务的原始主机

inventory_hostname_short

inventory_hostname 的短版本,是通过 . 分割后的第一部分。例如,对于 www.example.cominventory_hostnamewww 将是 inventory_hostname_short。这受委派的影响,因此它将反映委派主机的“短名称”

inventory_file

首次定义 inventory_hostname 的清单源的文件名。忽略委派,并始终反映 inventory_hostname 的信息。

omit

特殊变量,允许您“省略”任务中的选项,例如 - user: name=bob home={{ bobs_home|default(omit) }}

play_hosts

已弃用,与 ansible_play_batch 相同

playbook_dir

当前正在执行的 playbook 目录的路径。注意:当 playbook 包含 import_playbook 语句时,这可能与传递给 ansible-playbook 命令行的 playbook 目录不同。

role_name

当前正在执行的角色的名称。

role_names

已弃用,与 ansible_play_role_names 相同

role_path

当前正在运行的角色的目录路径

Facts

这些是包含当前主机(inventory_hostname)相关信息的变量。 它们仅在先收集后才可用。 有关更多信息,请参阅发现变量:facts 和魔法变量

ansible_facts

包含为 inventory_hostname 收集或缓存的任何 facts。 facts 通常由 setup 模块在 playbook 中自动收集,但任何模块都可以返回 facts。

ansible_local

包含为 inventory_hostname 收集或缓存的任何“本地 facts”。 可用的键取决于创建的自定义 facts。 有关更多详细信息,请参阅setup 模块和facts.d 或本地 facts

连接变量

连接变量通常用于设置如何在目标上执行操作的具体细节。 它们中的大多数对应于连接插件,但并非所有插件都是特定的; 其他插件(如 shell、terminal 和 become)通常也参与其中。 仅描述常见的插件,因为每个连接/become/shell 等插件都可以定义自己的覆盖和特定变量。 请参阅控制 Ansible 的行为:优先级规则,了解连接变量如何与配置设置命令行选项playbook 关键字 交互。

ansible_become_user

Ansible 在使用权限提升后“成为”的用户。 此用户必须可供“登录用户”使用。

ansible_connection

实际用于目标主机上任务的连接插件。

ansible_host

要使用的目标主机的 ip/名称,而不是 inventory_hostname

ansible_python_interpreter

Ansible 应在目标主机上使用的 Python 可执行文件的路径。

ansible_user

Ansible 以该用户“登录”。