一.saltstack介绍
实现对IT基础设施批量管控
1.saltstack组件
管理服务器被称为salt-master,被管理服务器在saltstack软件中都叫做salt-minion
1.salt-master 管理端
2.salt-minion 被管理端
3.salt-syndic salt代理
2.saltstack特性
saltstack在部署的时候支持以分布式的方式来进行部署,所以saltstack软件所支持的被管理端的数量比ansible所支持的被管理端的数量要高的多。
1.重量级工具
2.基于python开发,开源,跨平台
3.基于证书,进行身份验证【既然使用的是证书,就需要我们对minion机器的主机名进行修改。】
基于证书,在salt-minion首次启动的时候,回向salt-master发送一个证书申请,随后在salt-master签署一个证书,此时才能对salt-minion机器进行管理,当这台minion不想被master管理的时候,就在master上删除对应的证书,此时master就不会给这台minion机器进行管理操作。
4.支持分布式的部署
5.提供api接口
二.saltstack安装部署
1.添加主机名解析
1.添加主机名解析【如果不做这个添加主机名解析的操作,那么之后saltstack在执行操作的时候,速度会很慢。】
如上图所示,添加主机名解析
如上图所示,这是使用rsync工具将主机文件复制到其他的机器上。
2.安装部署slatstack软件
如上图所示,这是阿里开源镜像站的saltstack的http类型的yum源,我们使用这个yum源去下载安装slatstack软件。
如上图所示,我们去安装对应的salt-master软件。
如上图所示,这是saltstack软件的配置文件。
如上图所示,这是启动saltstack软件,并设置这个软件的开机自启动。
这个4050端口是slatstack组件内部进行通信使用的端口,4060是slatstack-master与minion进行通信使用的端口。
3.安装部署salt-minion软件,【在被控端机器】
如上图所示,这是minion的配置文件。
如上图所示,在从服务器的配置文件上写主服务器的IP地址。
如上图所示,这是给这个minion服务器设置自己的id,
我们这里使用minion服务器自己的IP地址作为自己的id
如上图所示,这是将minion启动。
4.在master端签署证书
如上图所示,这是在master服务器端去查看证书相关信息,
依次是接受的证书,
拒绝的证书
发来的证书
拒绝的证书
如上图所示,这是签署证书的操作。
5.测试使用
如上图所示,这是测试通信是否正常
6.salt-key命令的选项
管理minion的证书
如上图所示,-A选项是签署所有证书,-a选项是签署单个证书,-a后面要跟上minion的id,
如上图所示,-D是删除所有证书,-d是删除单个证书,
如上图所示,-R是拒绝所有的证书,-r是拒绝单个证书。
saltstack常用模块
saltstack软件常用的管理被控机器的方式有调用模块以及使用sls状态文件【类似于ansible中的剧本。】
如上图所示,是salt命令的使用格式,
[options]: 可选参数,用于修改 salt 命令的行为。例如,-l info 用于设置日志级别为 info。
'<target>': 指定目标 minions(客户端)。可以是具体的主机名、IP 地址或通过复杂的匹配机制(如 grains)来指定。
<function>: 要在目标 minions 上执行的功能或模块。SaltStack 提供了大量的功能模块,涵盖了文件管理、系统命令和网络操作等。
[arguments]: 可选参数,提供给功能函数的额外信息或参数。
支持使用不同的方式来匹配minion机器。
如上图所示,这是用来测试通信的,
如上图所示,这是去执行shell命令在被控机器上。
1.常用选项
以不同的方式匹配minion机器。
如上图所示,这个-L的选项支持我们以逗号隔开的方式写多个minionID
1)-L以逗号来匹配多个minion机器
如上图所示,这是使用salt命令的时候加上-L选项来匹配多个minion机器的操作。
2)-S 以网段的形式匹配minion机器
如上图所示,这是以网段的形式匹配minion机器。
3)-N 以主机组的方式匹配minion
在master配置文件中事先定义主机组
如上图所示,编辑master文件,定义一个主机组。
4)-C以多条件的方式匹配minion
5)-G 以grains数据组件中的数据匹配minion
grains数据组件【用于保存minion的状态数据(cpu,ip,主机名,操作系统等)并且所有的数据都是按照键值对的形式储存的。】
查看grains中的数据
如上图所示,使用这个grains.items可以查看到192.168.140.12的minion数据。
如上图所示,master机器上对应的grains组件中储存着minion机器的cpu信息,架构信息,完整的主机名,ipv4地址还有ipv6地址。
如上图所示,是这个minion机器的id信息,mac地址信息。
如上图所示,显示的是机器虚拟化的类型是VMware
如上图所示,这就是一个列表,当grans数据中前面显示一个-,就表示这是一个列表中的信息。
列表中的元素默认是从0开始的。
这是从字典中去查看对应的值。
如上图所示,这是通过这个centos去匹配minion机器。
如上图所示,这是对192.168.140.0/24网段中,操作系统是centos的机器进行操作。
2.常用模块
1)查看模块
如上图所示,是salt提供的模块。
2)查看模块的操作方法
如上图所示,是查看service模块的使用方法的操作。
如上图所示,是查看user模块的使用方法。
3)查看操作方法
如上图所示,这是查看操作方法。
1)cmd模块
2)pkg模块
这个命令是在使用 SaltStack 工具查询 IP 地址为 192.168.140.12 的服务器上,与包管理相关的所有可用函数。它帮助系统管理员了解在该服务器上可以执行哪些包管理操作。
3)service模块
如上图所示,这是去查看机器上的vsftpd软件的状态。
4)user/group模块
如上图所示,查看group的使用方法。
如上图所示,这是查看添加用户的方法,并查看其使用格式。