Ansible 变量
Ansible 变量
在剧本中,变量与在编程语言中使用变量非常相似。它可以帮助您为变量赋值并在剧本中的任何地方使用它。您可以将条件放在变量值周围,并相应地在剧本中使用它们。
创建有效的变量名
在开始使用变量之前,了解什么是有效的变量名很重要。
变量名应该是字母、数字和下划线。变量应始终以字母开头。
foo_port 和 foo2 都是正确或有效的变量名。
Foo-port、foo port、foo.port 和 10foo 都是无效的变量名。
YAML 支持将键映射到值的字典。例如:
foo:
field1: one
field2: two
然后您可以使用括号表示法或点表示法引用字典中的特定字段:
两者都将引用相同的值"一"。但是,如果您选择使用点表示法,请注意某些键可能会导致问题,因为它们会与 Python 字典的属性和方法发生冲突。如果您使用以两个下划线或任何已知公共属性开头和结尾的键,则应使用括号表示法而不是点表示法:
示例
-hosts : <your hosts>
vars:
tomcat_port : 8080
在上面的例子中,定义了一个变量名 tomcat_port 并将值 8080 分配给该变量,并且可以在任何需要的地方使用它。
下面的代码是来自其中一个角色(install-tomcat),例如:
block:
-name: Install Tomcat artifacts
action: >
yum name = "demo-tomcat-1" state = present
register: Output
always:
-debug:
msg:
-"Install Tomcat artifacts task ended with message: {{Output}}"
-"Installed Tomcat artifacts-{{Output.changed}}"
说明
block: 执行给定块的 Ansible 语法。
名称: 它用于日志记录并帮助调试所有块是否成功执行。
action: action 是 YAML 中使用的 Ansible 关键字。
register: 使用 register 关键字注册动作标签的输出。
always: 它也是一个 Ansible 关键字;它说下面仍然会被执行。
msg: 显示消息。