在剧本中,变量与在编程语言中使用变量非常相似。它可以帮助你为变量分配值,并在剧本中的任何位置使用它。你可以将条件放在变量的值周围,并在剧本中相应地使用它们。
创建有效的变量名
【ansible变量】在开始使用变量之前,重要的是要知道什么是有效的变量名。
变量名称应为字母,数字和下划线。该变量应始终以字母开头。
foo_port和foo2都是正确或有效的变量名。
Foo端口,foo端口,foo.port和10foo都是无效的变量名称。
YAML支持将键映射到值的字典。例如:
foo:
field1: one
field2: two
然后,你可以使用方括号符号或点符号来引用字典中的特定字段:
foo['field1']
foo.field1
两者都将引用相同的值“一个”。但是,如果选择使用点表示法,请注意某些键可能会引起问题,因为它们与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语法。
- 名称:用于记录日志,并帮助调试哪些块已成功执行。
- 操作:操作是YAML中使用的Ansible关键字。
- register:通过使用register关键字来注册动作标签的输出。
- 始终:它也是Ansible关键字;它说下面仍然会执行。
- msg:显示消息。
推荐阅读
- ansible使用角色(Role)
- ansible塔(Tower)
- ansible剧本(Playbook)
- ansible Ad-Hoc临时命令
- 在linux安装ansible
- ansible架构
- ansible工作流
- ansible入门介绍