第 16 章 Ansible 变量

以下变量控制 Ansible Automation Platform 与远程主机交互的方式。

有关特定于特定插件的变量的附加信息,请参考 https://docs.ansible.com/ansible-core/devel/collections/ansible/builtin/index.html

全局配置选项列表请参考 https://docs.ansible.com/ansible-core/devel/reference_appendices/config.html

变量描述

ansible_connection

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

这可以是任何 ansible 连接插件的名称。SSH 协议类型是 smartsshparamiko

默认为 smart

ansible_host

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

ansible_port

连接端口号(如果没有提供,默认为 22 用于 ssh)。

ansible_user

连接到主机时使用的用户名。

ansible_password

用于向主机进行身份验证的密码。

从不以纯文本形式存储此变量。

始终使用密码库。

ansible_ssh_private_key_file

ssh 使用的私钥文件。在使用多个密钥且您不想使用 SSH 代理时很有用。

ansible_ssh_common_args

此设置始终附加到 sftpscpssh 的默认命令行中。对于为特定主机(或组)配置 ProxyCommand 很有用。

ansible_sftp_extra_args

此设置始终附加到默认的 sftp 命令行。

ansible_scp_extra_args

此设置始终附加到默认的 scp 命令行。

ansible_ssh_extra_args

此设置始终附加到默认的 ssh 命令行。

ansible_ssh_pipelining

确定是否使用 SSH pipelining。这可以覆盖 ansible.cfg 中的 pipelining 设置。

ansible_ssh_pass

 

ansible_ssh_user

此变量为安装程序设置要使用的 SSH 用户,默认为 root。此用户必须在不需要密码的情况下允许基于 SSH 的身份验证。如果使用基于 SSH 密钥的身份验证,则密钥必须由 SSH 代理管理。

ansible_ssh_executable

(在 2.2 版中添加)

此设置覆盖使用系统 ssh 的默认行为。这可以覆盖 ansible.cfg 中的 ssh_executable 设置。

ansible_shell_type

目标系统的 shell 类型。除非将 ansible_shell_executable 设置为一个非兼容 shell,否则不应使用此设置。默认情况下,使用 sh 样式的语法对命令进行了格式化。把它设置为 cshfish 会导致在目标系统上执行命令来遵循这些 shell 的语法。

ansible_shell_executable

这会设置 ansible 控制器在目标机器上使用的 shell,并覆盖 ansible.cfg 中的可执行文件,默认为 /bin/sh

只有在无法使用 /bin/sh 时(也就是说,如果目标机器上没有安装 /bin/sh )或者无法从 sudo 运行,才应更改。

用户不能直接设置以下变量。Ansible 始终覆盖它们,以反映内部状态。

变量描述

ansible_check_mode

指明我们是否处于检查模式的布尔值

ansible_dependent_role_names

当前导入到当前 play 中的角色名称作为其他 play 的依赖关系

ansible_limit

用于当前 Ansible 的 --limit CLI 选项的内容

ansible_loop

使用 loop_control.extended 来启用时包含扩展循环信息的字典或映射

ansible_loop_var

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

ansible_index_var

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

ansible_parent_role_names

在当前角色通过 include_roleimport_role 操作 来执行时,此变量包含所有父角色的列表,以及最新的角色。换句话说,包含或导入此角色的角色是列表中的第一项。当发生多个包含时,此列表中的第一项是最后一个角色(包含此角色的角色)。一个特定角色可以在此列表中存在超过一次。

例如:当角色 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

当前 play 运行中的活动主机列表串行进行,也称为 batch(批量处理)。失败或无法访问的主机不能被视为 active

ansible_play_hosts

在当前的 play 运行中的主机列表,没有串行的限制。失败或无法访问的主机会从这个类别中排除。

ansible_play_hosts_all

play 目标的所有主机列表

ansible_play_role_names

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

ansible_play_name

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

ansible_search_path

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

ansible_version

包含关于当前运行版本的 ansible 的字典或映射,它有以下键:full, major, minor, revisionstring