ansible变量

时间:2022-07-22 18:14:44

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中已有此处定义的变量,则会被覆盖?)