ansible的基础配置:
ansible安装完成后,一定需要对主机清单进行管理,所以,配置inventory是ansible安装完成后的第一步
ansible的主机清单配置有两种方式:
单机配置:将单台主机的可解析主机名和ip配置到主机清单中
分组配置:将几台运行代码相似的主机名或者主机IP放到相同组中,并为该组命名
[web]
web1
web2
web3
web4
上面的分组方式也可以写为下面的形式
[web]
web[1:4]
ansible的主机清单配置除了配置主机到文件中外,还可以配置其它信息,如连接被管理端的用户,密码,例如:
[web]
web1 ansible_ssh_user=root ansible_ssh_pass=123456
web2 ansible_ssh_user=root ansible_ssh_pass=123456
如果没有设定密钥认证的话,可以在这里进行对被管理端的身份信息录入
除了上面的参数外,还可以在主机清单文件中配置变量信息
比如,我需要给web1的服务器定义http端口为8080,web2主机的http端口为80,配置如下:
[web]
web1 ansible_ssh_user=root ansible_ssh_pass=123456 http_port=8080
web2 ansible_ssh_user=root ansible_ssh_pass=123456 http_port=80
除了像上面的变量定义方式外,还可以用下面的组变量的定义方式:
[web]
web1 ansible_ssh_user=root ansible_ssh_pass=123456
web2 ansible_ssh_user=root ansible_ssh_pass=123456
[web:vars]
http_port=80
ssh_port=22
redis_port=6379
这样就为web组定义了下面的三个变量。这样定义的变量为一个组内所有的主机所共用。
如果使用了组变量的同时,也为每个主机定义了单独的、相同的变量名,如下面的这种形式:
[web]
web1 ansible_ssh_user=root ansible_ssh_pass=123456 http_port=8080
web2 ansible_ssh_user=root ansible_ssh_pass=123456
[web:vars]
http_port=80
ssh_port=22
redis_port=6379
则在web1下的http_port的值为8080,而不是80
也就是单台主机的变量会覆盖组变量,在相同变量名的情况下。
在定义组变量的时候,还可以采用下面的方式:
通过在/etc/ansible/group_vars/目录下建立一个以组名为命名的yaml文件
如定义web组的组变量就可以建立下面的一个文件:/etc/ansible/group_vars/web.yml文件
文件格式如下:
http_port: 80
server_name: www.test.com
注意:yaml格式有严格的格式要求,在变量值和冒号之间有一个空格
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。