🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL、PMP😜
💬格言:努力不一定成功,但要想成功就必须努力🔥🎈支持我:可点赞👍、可收藏⭐️、可留言📝
📜1. 查看ansible里的安装文件
# rpm -ql ansible|less
/etc/ansible/ansible.cfg # 默认ansible的默认配置文件位置
/etc/ansible/hosts # 默认inventory主机清单位置
/etc/ansible/roles # 默认inventory角色位置
/usr/bin/ansible # ansible命令的文件
/usr/lib/python3.6/site-packages/ansible # 提供Python模块
/usr/share/man/man1/ # 帮助文档
📜2. 简介
inventory是一个被管理主机的一个清单文件。
inventory里可以有单个主机,也可以有多个主机加起来的主机组。
inventory有静态和动态两种清单。静态主机清单可以通过文本文件来定义。动态主机清单可以根据需要而使用外部信息提供的脚本或其他程序来生成。
先进行静态主机清单的学习(重要),动态主机清单后续再进行简述。
📜3. 静态inventory
📑单个主机
可以是ip地址,也可以是域名
$ cat inventory
servera > FQDN
192.168.1.100 > IP地址
192.168.100.11:2222 > 非标准SSH端口
📑主机组
格式
[组名]
主机1
主机2
主机3
...
示例
$ cat inventory
localhost
[web-server]
servera
serverb
[balancer]
serverc
[data-server]
serverd
📑列出主机
all:代表所有主机
$ ansible -i inventory --list-hosts all
hosts (5):
localhost
serverc
servera
serverb
serverd
ungrouped:未分组主机
$ ansible -i inventory --list-hosts ungrouped
hosts (1):
localhost
📑嵌套组
格式
[组名:children] # children是关键字,固定语法,必须填写。
组名1
组名2
示例
同一个(主机/组)可以出现在多个组中
$ cat inventory
localhost
[web-server]
servera
serverb
[balancer]
serverc
[data-server]
serverd
[webs:children]
web-server
data-server
[bakend:children]
balancer
webs
列出主机
$ ansible -i inventory --list-hosts webs
hosts (3):
servera
serverb
serverd
$ ansible -i inventory --list-hosts bakend
hosts (4):
serverc
servera
serverb
serverd
📑范围简化表达式
格式
[start:end]
示例
192.168.1.1:100 | 代表192.168.1.1-192.168.1.100 |
---|---|
192.168.10:20.1:254 | 代表192.168.10.1-192.168.20.254 |
server01:20.domain.com | 代表01,02,03...20 |
a:c.domain.com | 代表a,b,c |
$ cat inventory
192.168.1.[1:100]
192.168.[10:20].[1:254]
[server]
server[01:20].domain.com
[mydomain]
[a:c].domain.com
列出主机
$ ansible -i inventory --list-hosts '192.168.12.25*'
hosts (6):
192.168.12.25
192.168.12.250
192.168.12.251
192.168.12.252
192.168.12.253
192.168.12.254
$ ansible -i inventory --list-hosts server12.domain.com
hosts (1):
server12.domain.com
$ ansible -i inventory --list-hosts mydomain
hosts (3):
a.domain.com
b.domain.com
c.domain.com
📑模糊匹配
通配符在Ansible表示0个或多个任意字符,主要应用于一些模糊规则匹配。
匹配
匹配所有主机,all或*号功能相同。如检测所有主机存活情况。
ansible all --list-hosts ansible '*' --list-hosts ansible '172.25.0.*' --list-hosts ansible 'server*' --list-hosts
逻辑或匹配
如我们希望同时对多台主机或多个组同时执行,相互之间用 :(冒号)或者 ,逗号 分隔即可。
ansible 'servera,prod' --list-host ansible 'ba*,prod' --list-host
逻辑与(&)匹配
逻辑与都匹配到的才执行。
ansible 'ser*,&prod' --list-hosts
逻辑非匹配
逻辑非用感叹号(!)表示,主要针对多重条件的匹配规则,使用方式如下:
ansible 'web*,!prod' --list-hosts
多条件组合
ansible 'server*,&prod,!ba' --list-host
正则匹配
Ansible同样完整支持正则匹配功能,~开始表示正则匹配。
ansible '~server(a|b)' --list-host
使用正则检测 www.example.com、new.example.com、blog.example.com的存活。
ansible "~(www|new|blog).example.(com|org)" --list-hosts
💡总结
RHCE认证作为基础认证的升级,需要大家在RHCSA的基础上再进行学习,因此,涉及的基础内容需要大家好好进行学习并巩固。有良好的基础才能更上一层楼。
好好加油,可以噶🤪。
以上就是【金鱼哥】对 第二章 部署ansible--构建ansible主机清单 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。
💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。
如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!