丈夫志四海,万里犹比邻。这篇文章主要讲述自动化运维工具SaltStack企业级系列课程(第二章 SaltStack组件_管理对象)相关的知识,希望能为你提供帮助。
一.管理对象(Target)
SaltStack 归根结底是要管理我们的服务器,服务器可以是一台或者多台,那我们应该如何去管理这些服务器呢?这里就提到了Target,Target可以是主机名,ip地址,
minionId等,也可以使多个主机名,一个IP地址段,为了方便管理,我们把这些信息统称为Target。
Target大体分为以下几类:
- 正则匹配
- 列表匹配
- Grains匹配
- 组匹配
- 复核匹配
- Pillar匹配
- CIDR匹配
#现在已经配置好了两台minion : salt-minion 和salt-minion02
root@salt-master ~]# salt-key -L
Accepted Keys:
salt-minion
salt-minion02
Denied Keys:
Unaccepted Keys:
Rejected Keys:#通过正则对minion操作
salt -E \'salt-minion*\' test.pingsalt-minion02:
True
salt-minion:
True
# salt-minion* 就是一个正则表达式,当然你可以根据具体需求来设计正则表达式
列表匹配:
salt -L \'salt-minion,salt-minion02\' test.ping# -L \'salt-minion,salt-minion02\' 就是一个列表,注意列表元素之间用逗号隔开salt-minion02:
True
salt-minion:
True
Grains匹配:
# grains 负责minion第一次启动的时候采集的静态数据,后续课程会有具体的章节讲解grains
salt salt salt-minion grains.ls#查看某节点的所有grainssalt -G \'os:centos\' test.ping# os:centos就是minion节点的一对grainssalt-minion02:
True
salt-minion:
True
组匹配:
#需要提前在 master节点的配置文件中定义组信息
vim /etc/salt/master
nodegroups:
groups: \'L@salt-minion,salt-minion02\'#组名: groups, \'L@salt-minion,salt-minion02\' 定义了一个列表,列表中包含salt-minion,salt-minion02这两个节点salt -N groups test.pingsalt-minion02:
True
salt-minion:
True
复合匹配:
#复合匹配支持使用and和or关联多个条件salt -C \'G@os:centos or L@salt-minion02\' test.ping# grains为os:centos 的节点或者 列表为 salt-minion02的节点salt-minion02:
True
salt-minion:
True
Pillar值匹配:
#pillar与grains类似,也是一组key:value的键值对,这里我们先放一放,后面pillar课程会详细讲解salt -I \'key:value\' test.ping
CIDR值匹配:
#CIDR 指的是minion客户端的ip地址段,可以根据不同的形式来匹配ip地址salt -S \'192.168.11.0/24\' test.ping#CIDR为192.168.11.0/24salt-minion02:
True
salt-minion:
True
小结:
【自动化运维工具SaltStack企业级系列课程(第二章 SaltStack组件_管理对象)】Target的参数匹配:
参数 | 匹配模式 | 例子 |
L | 列表 | L@minion01,minion02 |
G | Grains | G@os:centos |
E | 扩展正则 | E@minion0[1-3] |
I | Pillar | I@key:value |
S | CIDR | S@192.168.1.0/24 |
C | 复合 | G@os:centosor L@minion01,minion02 |
推荐阅读
- 10分钟认识RocketMQ!想进阿里连这个都不会()
- 如何在Windows中为Electron Framework应用程序创建MSI安装程序
- 如何在JavaScript中使用Fabric.js创建自己的T恤设计器
- 如何使用PHP,MySQL从一组坐标(经度和纬度)中查找最近的位置
- 如何使用CoconutBattery 3确定Mac的生产年份
- 如何使用Android Five Stars库向Android应用程序添加”为我的应用评分”对话框
- Android的演变(从开始到2019年的旅程)
- 常见的Java学习错误以及如何解决它们
- 如何在Java中操作KeePass数据库(kdbx)