ansible主机清单配置详解

ansible的基础配置:

ansible安装完成后,一定需要对主机清单进行管理,所以,配置inventory是ansible安装完成后的第一步

ansible的主机清单配置有两种方式:

单机配置:将单台主机的可解析主机名和ip配置到主机清单中

分组配置:将几台运行代码相似的主机名或者主机IP放到相同组中,并为该组命名

[web]
web1
web2
web3
web4

上面的分组方式也可以写为下面的形式

[web]
web[1:4]

ansible的主机清单配置除了配置主机到文件中外,还可以配置其它信息,如连接被管理端的用户,密码,例如:

[web]
ubuntu ansible_user=ubuntu ansible_pass=123456 ansible_host=192.168.5.1 ansible_port=22
centos ansible_user=root ansible_pass=123456 ansible_host=192.168.5.2 ansible_port=2022

如果没有设定密钥认证的话,可以在这里进行对被管理端的身份信息录入

除了上面的参数外,还可以在主机清单文件中配置变量信息

比如,我需要给web1的服务器定义http端口为8080,web2主机的http端口为80,配置如下:

[web]
web1 ansible_user=root ansible_pass=123456 http_port=8080
web2 ansible_user=root ansible_pass=123456 http_port=80

除了像上面的变量定义方式外,还可以用下面的组变量的定义方式:

[web]
web1 ansible_user=root ansible_pass=123456
web2 ansible_user=root ansible_pass=123456

[web:vars]
http_port=80
ssh_port=22
redis_port=6379

这样就为web组定义了下面的三个变量。这样定义的变量为一个组内所有的主机所共用。

如果使用了组变量的同时,也为每个主机定义了单独的、相同的变量名,如下面的这种形式:

[web]
web1 ansible_user=root ansible_pass=123456 http_port=8080
web2 ansible_user=root ansible_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格式有严格的格式要求,在变量值和冒号之间有一个空格

 

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值