Ansible使用基础之变量
文章目录
前言
变量,即可变化的量。在Ansible中,可在多个位置设置变量。
一、变量的使用
不论在何处设置的变量,最终都是以在playbook
调用为目的。
调用方法: {{ 变量名称 }}
二、变量的定义方法
2.1 命令行中定义
格式: -e ‘var1=value1 var2=value2…’
实例: ansible-playbook -e ‘uname=test age=100’ var.yml
结果:
2.2. 变量文件中定义
将变量存入到指定的变量文件(yml格式)中,playbook中使用vars_file指定变量文件,之后进行调用。
实例:
创建变量文件var.yml,写入以下内容
在playbook中调用变量,vars_files指定变量文件路径
结果:
2.3 playbook中定义
使用vars进行定义,与tasks同级
实例:
结果:
2.4 inventory中定义
2.4.1 主机变量
主机变量指每个主机后都指定变量,变量名相同,但值可不同
实例:
ansible agent -a “echo {{http_port}}”
结果:
2.4.2 主机组变量
主机组变量指为指定的主机组配置的公共变量,该主机组中主机都可使用,值是统一的
实例:
2.5 系统变量
通过setup模块,可查询系统中存在的变量,之后直接在playbook中调用
实例: 查看主机空闲内存使用情况
- 通过
setup
模块,查出表示空闲内存的系统变量
- 在
playbook
中调用
结果:
三、变量调用优先级
由高到低
- 命令行定义变量
- 变量文件中定义变量
- playbook 中定义变量
- 主机清单中的主机变量
- 主机清单中的主机组公共变量