Ansible教程

Ansible 变量

Ansible 变量

在剧本中,变量与在编程语言中使用变量非常相似。它可以帮助您为变量赋值并在剧本中的任何地方使用它。您可以将条件放在变量值周围,并相应地在剧本中使用它们。

创建有效的变量名

在开始使用变量之前,了解什么是有效的变量名很重要。
变量名应该是字母、数字和下划线。变量应始终以字母开头。
foo_port 和 foo2 都是正确或有效的变量名。
Foo-port、foo port、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 语法。 名称: 它用于日志记录并帮助调试所有块是否成功执行。 action: action 是 YAML 中使用的 Ansible 关键字。 register: 使用 register 关键字注册动作标签的输出。 always: 它也是一个 Ansible 关键字;它说下面仍然会被执行。 msg: 显示消息。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4