Ansible 变量

2024 年 8 月 29 日 | 阅读 2 分钟

在 playbook 中,变量的使用与编程语言中的变量非常相似。它可以帮助你将值分配给变量,并在 playbook 中的任何位置使用它。你可以围绕变量的值设置条件,并在 playbook 中相应地使用它们。

创建有效的变量名

在使用变量之前,重要的是要知道什么是有效的变量名。

变量名应为字母、数字和下划线。变量应始终以字母开头。

foo_port 和 foo2 都是正确或有效的变量名。

Foo-port、foo port、foo.port 和 10foo 都是无效的变量名。

YAML 支持将键映射到值的字典。例如

然后,您可以使用方括号表示法或点表示法引用字典中的特定字段

两者都将引用相同的值“one”。但是,如果您选择使用点表示法,请注意某些键可能会导致问题,因为它们与 Python 字典的属性和方法冲突。如果您使用以两个下划线开头和结尾的键或任何已知的公共属性,则应使用方括号表示法而不是点表示法

示例

在上面的例子中,定义了一个变量名 tomcat_port 并将值 8080 赋给该变量,可以在你的 playbook 中任何需要的地方使用它。

以下代码来自角色之一(install-tomcat),例如

说明

  • block: Ansible 语法,用于执行给定的块。
  • name: 它用于日志记录,并有助于调试所有成功执行的块。
  • action: action 是 YAML 中使用的 Ansible 关键字。
  • register: action 标记的输出通过使用 register 关键字注册。
  • always: 它也是一个 Ansible 关键字;它表示以下内容仍将被执行。
  • msg: 它显示消息。

下一个主题Ansible 标签