Linux下SaltStack安装与配置

SaltStack的官方文档:https://www.saltstack.com/

Saltstack的中文文档:http://docs.saltstack.cn/

SaltStack安装包的下载地址:http://repo.saltstack.com/

 

 

一、基础介绍

 

1、简介

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。

通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

 

2、特性

(1)、部署简单、方便;
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;
(6)、支持API及自定义模块,可通过Python轻松扩展。

 

3、说明

Saltstack 比 Puppet 出来晚几年,是基于Python 开发的,也是基于 C/S 架构,服务端 master 和客户端 minions ;Saltstack 和 Puppet 很像,可以说 Saltstatck 整合了 Puppet和Chef的功能,更加强大,更适合大规模批量管理服务器,并且它比Puppet 更容易配置。
三大功能: 远程命令执行,配置管理(服务,文件,cron,用户,组),云管理。
支持系统:大多数都支持,windows 上不支持安装 master。


4、Master与Minion认证

(1)、minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。

(2)、master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。


5、Master与Minion的连接

SaltStack的master启动后默认监听4505和4506两个端口。
4505(publish_port)为saltstack的消息发布系统,4506(ret_port)为saltstack客户端与服务端通信的端口。如果使用lsof查看4505端口,会发现所有的minion在4505端口持续保持在ESTABLISHED状态。

 

二、实验环境(rhel7.3版本)

1selinux和firewalld状态为disabled

2各主机信息如下:

主机ip
server1(master)172.25.83.1
server2(minion)172.25.83.2
server3(minion)172.25.83.3
物理机(用来共享软件包)172.25.83.83/172.25.254.83

3在三个节点(server1,server2和server3)上:配置yum源(这里只演示server1的配置方法,server2和server3的配置方法同server1)

 

<1>源端下载2018安装包到物理机/var/www/html下,对该目录增加r和x的权限(如果不增加r和x的权限,会报403的错误),并执行命令生成repodata目录(如果不生成该目录,会报错:172.25.83.83/2018/repodata/repod.xml文件找不到)

[root@foundation83 ~]# cd /var/www/html/
[root@foundation83 html]# ls
2018  4.0  docker  index.html  rhel6.5  rhel7.0  rhel7.3
[root@foundation83 html]# ll -d 2018/
drwx------ 3 root root 4096 Mar 29 03:17 2018/
[root@foundation83 html]# chmod go+rx 2018/   #给2018这个目录增加r和x的权限
[root@foundation83 html]# ll -d 2018/
drwxr-xr-x 3 root root 4096 Mar 29 03:17 2018/
[root@foundation83 html]# createrepo --update /var/www/html/2018/   #生成2018目录下需要的repodata目录
  • 如果不生成repodata目录,会报下面的错

  • 查看镜像是否共享成功

 

<2>修改yum源配置文件

[root@server1 ~]# vim /etc/yum.repos.d/dvd.repo
[dvd]
name=rhel7.3
baseurl=http://172.25.83.83/rhel7.3
gpgcheck=0
enabled=1

[salt]   #增加slat这块内容
name=saltstack
baseurl=http://172.25.83.83/2018
gpgcheck=0

 

<3>查看yum源与安装包

 

 

三、SaltStack安装与配置

 

1、下载并配置salt

 

#配置server1
[root@server1 ~]# yum install salt-master.noarch -y
[root@server1 ~]# systemctl start salt-master

#配置server2
[root@server2 ~]# yum install salt-minion.noarch -y
[root@server2 ~]# cd /etc/salt/
[root@server2 salt]# vim minion   #注意格式,顶格写,冒号与ip之间空一格
 17 master: 172.25.83.1
[root@server2 salt]# systemctl start salt-minion


#配置server3
[root@server3 ~]# yum install salt-minion.noarch -y
[root@server3 ~]# cd /etc/salt/
[root@server3 salt]# vim minion   #注意格式,顶格写,冒号与ip之间空一格
 17 master: 172.25.83.1
[root@server3 salt]# systemctl start salt-minion

示图:server1端(master)启动salt-master服务之后,4505、4506端口开启

示图:server2端和server3端(minion)启动salt-minion服务之后,会和172.25.83.1:4506建立一个连接

 


注意:

minion端开启服务后,会生成minion_id文件,修改 IP 或 hostname 时,必须删除该文件,重启服务后才可生效。


 

查看并添加salt-key

[root@server1 ~]# salt-key -L
[root@server1 ~]# salt-key -A

 

2、查看相关信息

 

1.下载并查看master和minion端的tree

[root@server1 ~]# yum install tree -y

#server2端和server3端安装tree命令的操作同上

 

 

 

#在server1端
[root@server1 salt]# cd pki/master/
[root@server1 master]# ls
master.pem  master.pub  minions  minions_autosign  minions_denied  minions_pre  minions_rejected
[root@server1 master]# md5sum master.pub
37ff18df4ded4f5a8b7fe4be304aa992  master.pub

#在server2端
[root@server2 salt]# cd pki/minion/
[root@server2 minion]# ls
minion_master.pub  minion.pem  minion.pub
[root@server2 minion]# md5sum minion_master.pub   #与master端的master.pub文件的md5值相同
37ff18df4ded4f5a8b7fe4be304aa992  minion_master.pub
[root@server2 minion]# md5sum minion.pub 
e8962ff1f2006308471d0a88df24ebb9  minion.pub

#在server3端
[root@server3 salt]# cd pki/minion/
[root@server3 minion]# ls
minion_master.pub  minion.pem  minion.pub
[root@server3 minion]# md5sum minion_master.pub   #与master端的master.pub文件的md5值相同
37ff18df4ded4f5a8b7fe4be304aa992  minion_master.pub
[root@server3 minion]# md5sum minion.pub 
15f8e169aa62922bf11c1a9c07ea0dae  minion.pub

 

2.查看server1(mater端)4505、4506端口运行情况:

[root@server1 salt]# yum install lsof -y

 

 

 

 

 

3.检测salt服务:

[root@server1 ~]# salt '*' test.ping   #调用test模块的ping方法进行测试
[root@server1 ~]# salt '*' cmd.run hostname   #调用cmd模块的run方法,执行hostname命令
[root@server1 ~]# salt '*' cmd.run df   #调用cmd模块的run方法,执行df命令

 

 

 

 

4.在server1端(master端)查看python端口进程

[root@server1 ~]# yum list python-*
[root@server1 ~]# yum install python-setproctitle.x86_64 -y
[root@server1 ~]# systemctl restart salt-master  #必须重启salt-master服务才能生效
[root@server1 ~]# ps ax

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值