环境配置:
centos7系统。1G1核心,多多益善。
服务端:192.168.80.130
客户端:192.168.80.132
原理在部署操作后面
1.在服务端上安装saltstack控制端软件
配置yum源
[root@localhost~]#wgethttps://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
[root@localhost ~]# yum -y install salt-repo-latest-2.el7.noarch.rpm
安装saltstack主控制
[root@localhost ~]# yum -y install salt salt-master salt-minion salt-ssh salt-syndic
[root@localhost salt]# vim /etc/salt/minion
16 master: 192.168.80.130(masterip地址)
[root@localhost ~] sed -n '/^master/p' /etc/salt/minion(masterip地址)
master: 192.168.80.130
启动主控端的salt-master和salt-minion
[root@localhost ~] systemctl start salt-master salt-minion
2 在客户端安装salt-minion客户端
配置yum源
[root@localhost~]#rpm -ivh https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm
[root@localhost ~]#rm -rf /var/run/yum.pid
[root@localhost ~]# yum clean all
安装并修改被控端的配置文件,将master设为主控端的IP
[root@localhost ~]# yum -y install salt-minion
[root@localhost salt]# vim /etc/salt/minion
14 # Set the location of the salt master server. If the master server cannot be
15 # resolved, then the minion will fail to start.
16 master: 192.168.80.130
17
18 # Set http proxy information for the minion when doing requests
[root@localhost salt] sed -n '/^master/p' /etc/salt/minion
master: 192.168.80.130
启动受控端的salt-minion
[root@localhost salt] systemctl start salt-minion
3 SaltStack认证机制
查看当前证书情况
[root@localhost salt]# salt-key -L
Accepted Keys:
192.168.80.130
192.168.80.132
Denied Keys:
Unaccepted Keys:
Rejected Keys:
[root@localhost ~]# salt-key -ya 192.168.80.132
The following keys are going to be accepted:
Unaccepted Keys:
192.168.80.132
Key for minion 192.168.80.132 accepted.
接受指定minion的新证书
[root@localhost ~]# salt-key -L
Accepted Keys:
192.168.80.132
Denied Keys:
Unaccepted Keys:
192.168.80.130
Rejected Keys:
[root@localhost ~]# salt-key -yA
The following keys are going to be accepted:
Unaccepted Keys:
192.168.80.130
Key for minion 192.168.80.130 accepted.
接受所有minion的新证书
4.SaltStack远程执行测试
测试指定受控端主机是否存活
[root@localhost salt]# salt "192.168.80.132" test.ping
192.168.80.132:
True
5.SaltStack介绍
自动化运维工具
作为一个运维人员,很大一部分工作是在业务的配置管理和状态维护以及版本发布上,而当业务场景及公司规模上了一定规模后,人为手工的去做这些工作将变得极其困难,此时我们将需要利用一些自动化运维的工具来达到批量管理的目的。
常用的自动化运维工具有:
puppet
ansible
saltstack
此三款属同类工具,皆可用来提高运维管理的效率,但它们又各有优势,目前主流的自动化运维工具是ansible和saltstack。其中ansible无需安装客户端,这是其最大的优势,而saltstack则需要安装客户端工具,类似zabbix的agent。应用场景方面,ansible常用于小型企业,而saltstack则常用于中大型企业,因为ansible无法并行执行而saltstack可以并行。但不论其特点如何,本质上均属同类,所以只需要掌握一种即可轻松胜任运维工作。
saltstack的特点
基于python开发的C/S架构配置管理工具
底层使用ZeroMQ消息队列pub/sub方式通信
使用SSL证书签发的方式进行认证管理,传输采用AES加密
saltstack服务架构
在saltstack架构中服务器端叫Master,客户端叫Minion。
在Master和Minion端都是以守护进程的模式运行,一直监听配置文件里面定义的ret_port(接受minion请求)和publish_port(发布消息)的端口。
当Minion运行时会自动连接到配置文件里面定义的Master地址ret_port端口进行连接认证。
saltstack除了传统的C/S架构外,其实还有一种叫做masterless的架构,其不需要单独安装一台 master 服务器,只需要在每台机器上安装 Minion端,然后采用本机只负责对本机的配置管理机制服务的模式。
SaltStack四大功能与四大运行方式
SaltStack有四大功能,分别是:
远程执行
配置管理/状态管理
云管理(cloud)
事件驱动
SaltStack可以通过远程执行实现批量管理,并且通过描述状态来达到实现某些功能的目的。
SaltStack四大运行方式:
local本地运行
Master/Minion传统方式
Syndic分布式
Salt ssh