ansible变量
(部分内容摘自互联网,非官方,描述不一定正确)
变量种类:
内置变量facts:
-
自定义变量:
- 命令行传递的变量
- roles传递的变量
- 主机变量
- 组变量
内置变量facts:
由远程主机发回的主机属性信息,这些信息被保存在ansible变量当中ansible xx.xx.xx.xx -m setup
获取远程主机上的属性信息,这些属性信息保存在facts中。
setup 返回的json格式主机信息,facts变量组成:
"ansible_facts": {
"ansible_all_ipv4_addresses": [
"192.168.69.129"
],
"ansible_distribution": "Ubuntu",
"ansible_distribution_version": "16.10",
......
"ansible_dns": {
"nameservers": ["127.0.1.1"],
"search": ["localdomain"]
},
}
自定义变量
主机变量
定义在inventory配置文件中,如/etc/ansible/hosts
中;添加在主机后面。
[group1]
host2 http_port=303 maxRequestsPerChild=909
主机变量是单独分配给对应主机的。
组变量
定义在inventory配置文件中,如/etc/ansible/hosts
中。
[group_name:vars]
var1=value
var2=value
[group1]
host1
host2
[group1:vars] # 组变量
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
组变量分配给对应的组中的所以主机。
命令行传递的变量
通过命令行传递:
ansible-playbook test.yml --extra-vars “host=www user=tom“
(如果playbook中已有此处定义的变量,则会被覆盖?)