saltstack安装与配置

82 篇文章 3 订阅
###############简介

saltstack是一种自动化运维工具。
Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像,可以说 Saltstatck 整合了 Puppet 和 Chef 的功能,更加强大,更适合大规模批量管理服务器,并且它比 Puppet 更容易配置。
三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理。
支持系统:大多数都支持,windows 上不支持安装 master。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
(1)什么是saltstack?
Saltstack是基于python开发的一套C/S架构配置管理工具
使用SSL证书签方的方式进行认证管理
底层使用ZeroMQ消息队列pub/sub方式通信
– 号称世界上最快的消息队列ZeroMQ能快速在成千上万台主机上进行各种操作
– 采用RSA Key方式确认身份。
(2)主要功能?
Saltstack最主要的两个功能是:配置管理与远程执行。
Saltstack不只是一个配置管理工具,还是一个云计算与数据中心架构编排的利器。
Saltstack已经支持Docker相关模块。
在友好地支持各大云平台之后,配合Saltstack的Mine实时发现功能可以实现各种云平台业务的自动扩展。
(3)Saltstack架构
• Saltstack基于C/S架构

– 服务器端称作Master

– 客户端称作Minion

可以实现传统处理方式,即:客户端发送请求给服务器,服务器收到请求后处理请求,再将结果返回,也可以使用消息队列中的发布与订阅(pub/sub)服务模式。
这里写图片描述
(4)Saltstack工作机制
Master和Minion都以守护进程的方式运行。
Master监听配置文件里定义的ret_port(接收minion请求),和publish_port(发布消息)的端口。
当Minion运行时,它会自动连接到配置文件里定义的Master地址ret_port端口进行连接认证。
当Master和Minion可以正常通信后,就可以进行各种各样的配置管理工作了。

############saltstack安装与配置

实验环境:
master(服务端):
server4:172.25.254.4

minion(客户端):
server5:172.25.254.5
server6:172.25.254.6
步骤:
(1)添加第三方软件yum源,将所需的所有包放在一个目录(我的目录名为rhel6)中,为了实现yum源共享给虚拟主机,将此目录放在共享路径/var/www/html下。
其实所有的第三方包在无共享都是可以安装的,建立第三方yum源是为了便于安装,方便管理而已。
这里写图片描述
我在真机下创建了我的salt yum仓库。(这里遇到一个问题,有必要说以下:在终端salt源里面的包可用,在浏览器刚开始测试显示错误,究其原因,是第三方共享目录rhel6的权限问题所致,切忌)
真机yum源(在原基础上添加):
这里写图片描述
这里写图片描述
修改权限后在浏览器可以看到包:
这里写图片描述
(2)修改所有虚拟机(一台master,两台minion)的yum源
在原yum源基础上添加:

[salt]
name=salt
baseurl=http://172.25.254.77/rhel6
gpgcheck=0

这里写图片描述
这里写图片描述
这里写图片描述
(3)master机安装salt-master,minion机安装salt-minion。

[root@server4 ~]# yum install -y salt-master
[root@server5 ~]# yum install -y salt-minion
[root@server6 ~]# yum install -y salt-minion

(4)分别修改配置文件并启动服务

[root@server4 ~]# vim /etc/salt/master
  15 interface: 172.25.254.4
[root@server4 ~]# /etc/init.d/salt-master start 
Starting salt-master daemon:                               [  OK  ]
[root@server5 ~]# vim /etc/salt/minion
   16 master: 172.25.254.5
[root@server5 ~]# /etc/init.d/salt-minion start
Starting salt-minion:root:server5 daemon: OK
[root@server6 ~]# vim /etc/salt/minion
   16 master: 172.25.254.6
[root@server6 ~]# /etc/init.d/salt-minion start
Starting salt-minion:root:server6 daemon: OK

SaltStack的master启动后默认监听4505和4506两个端口。
4505(publish_port)为saltstack的消息发布统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。
当三个节点开启服务后,minion会开启4506端口,master会开启4505和4506两个接口,4505端口负责推送消息给minion,4506负责接受minion的报告。
这里写图片描述
注意:
minion端开启服务后,会生成minion_id文件,修改 IP 或 hostname 时,必须删除该文件,重启服务后才可生效.
这里写图片描述
(5)建立关联,在master查看salt-key
-a :accept ,-A:accept-all,-d:delete,-D:delete-all。可以使用 salt-key 命令查看到已经签名的客户端。此时我们在客户端的 /etc/salt/pki/minion 目录下面会多出一个minion_master.pub 文件。

root@server1 salt]# salt-key -L        ----查看
[root@server1 salt]# salt-key -A       ----全部关联
salt-key -a server2                    ---- 指定关联

这里写图片描述
建立关联事实上是交换了master与minion的公钥
这里写图片描述
这里写图片描述
这里写图片描述
(6)查看相关信息
第一步:下载并查看master和minion端的tree
yum install tree -y
master:
这里写图片描述
minion:
这里写图片描述
这里写图片描述
第2步:查看4505、4506端口运行情况
yum install lsof -y
在master:
这里写图片描述
在minion:
这里写图片描述
这里写图片描述
第3步:检测salt服务
这里写图片描述
说明: 这里的 * 必须是在 master 上已经被接受过的客户端,可以通过 salt-key 查到,通常是我们已经设定的 id 值。关于这部分内容,它支持通配、列表以及正则。 比如两台客户端 web10、web11, 那我们可以写成 salt ‘web*’ salt ‘web1[02]’ salt -L ‘web10,web11’ salt -E ‘web(10|11)’ 等形式,使用列表,即多个机器用逗号分隔,而且需要加-L,使用正则必须要带-E选项。 它还支持 grains 和 pillar,分别加 -G 和 -I 选项,下面会介绍到。

第4步:查看python端口进程

root@server4 salt]# yum install -y python-setproctitle.x86_64
[root@server4 salt]# /etc/init.d/salt-master restart
[root@server4 salt]# ps ax

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值