Ansible(三)资源清单

一     Inventory配置文件

目标:按需定制ansible的inventory文件

(1)定义主机和组

# Inventory可以直接为IP地址  
172.25.0.2
# 端口号不是默认22端口时,可明确的表示为:
server2:1000
server2 ansible_port=2222 ansible_host=172.25.0.2 # 携带变量

其他

# 定义主机和组
# 中括号表示一个组,也可以表示一个范围
[webserver]
www[1:10].example.com
db-[a:f].example.com
# 定义主机变量,可以在playbook中使用时对主机进行个性化定制
[webserver]
web1 http_port=8080 maxRequestsPerChild=1024

定义组变量

# 定义组变量
[webserver]
server2
server3
# 注意:vars是关键字-->注意格式
[webserver:vars]
ntp_server=time.aliyun.com
# 说明:webserver组中的所有主机ntp_server值为time.aliyun.com-->所有组的共性!

定义组嵌套及组变量

# 关键字
[webservers:children]  
apache  
nginx 
[webservers:vars]  
ntp_server=time1.aliyun.com

说明:组与组之间可以相互调用,并且可以向组中的主机指定变量。但是这些变量只能在Ansible-playbook中使用!

变量的检索位置

Inventory配置文件(默认/etc/ansible/hosts)
Playbook中vars定义的区域   # 常常采用
Roles中vars目录下的文件    # 常常采用
Roles同级目录group_vars和hosts_vars目录下的文件

# 说明:设置变量时尽量沿用同一种方式,方便后续维护!

Ansible与正则

# 匹配所有主机,all或*号功能相同。
ansible all –m ping  
ansible "*" -m ping 
ansible 172.25.0.* -m ping 
# 对多台主机或多个组同时执行,相互之间用冒号分隔即可,根据上下文判断!
ansible "web1:web2" -m ping 
# 在webserver组但不在database组的主机,用感叹号表示
ansible 'webservers:!database' -m ping 

# 在webserver组和database组中同时存在的主机,用&符号表示
ansible "webservers:&database" -m ping

# 模糊匹配
*.example.com
www*.com:database 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值