Saltstack安装配置 小记

一:为什么要用Saltstack?

不要我为什么用salt?是ansible不香么?不不不,我也想用ansible,悲催的是到了新公司就是用的salt!salt!salt!暴击三连~~生无可恋~~

此时,还能说啥?撸起袖子加油干~~~

 

简单区别:Saltstack、Ansible都是优秀的批量管理工具。

               Ansible主要基于ssh协议进行相关操作,它的特点是不需要客户端,大规模环境下只通过ssh会比较慢。salt会使用C/S结构的模式,salt-master和salt-minion并行的,大规模批量操作的情况下,会比Ansible速度快一些。底层使用的是zero-MQ消协队列。

 

二:安装

1.根据运行版本,导入saltstack存储库密钥

版本7【centos】:
rpm --import https://repo.saltstack.com/yum/redhat/7/x86_64/latest/SALTSTACK-GPG-KEY.pub

版本6【centos】:
rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub

 

2.配置源【将以下内容保存到 /etc/yum.repos.d/saltstack.repo】

版本7和6【centos】:
[saltstack-repo]
name=SaltStack repo for RHEL/CentOS $releasever
baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest
enabled=1
gpgcheck=1

 

3.管理端【master】配置:

yum -y install salt-master salt-minion

解释:作为管理端,也是需要管理自己的。所以既是管理端也是被管理端

systemctl start salt-master       #管理端不需要做配置,直接启动即可

[root@es1]/etc/salt# vim minion

master:

  - 172.30.6.160      [只需要告诉minion,master的地址即可]

systemctl start salt-minion

 

注意:管理端比较特殊,管理其他服务器。但是自身也需要被管理,所以他会同时安装salt-master和salt-minion。master不需要配置直接启动,而在minion里面需要配置master的地址后在启动。

 

4.被管理端【minion】配置

也是需要配置源的,请自行看上面好伐??

yum install  -y  salt-minion

[root@es2]/etc/salt# vim minion

master:

  - 172.30.6.160      [只需要告诉minion,master的地址即可]

systemctl  start  salt-minion

 

如果还有其他被管理机器,还是参考4步骤即可。配置源>安装salt-minion>修改minion【配置master地址】>启动minion

 

敲黑板!!此时请注意~~重点~~必考~~

在minion配置中一般只需要配置master的地址即可,这个时候我们在master端去检测被管理端的时候默认看到的是被管理端的主机名字。如果,如果,你不想看到主机名或者是你跟着百度出来的文档去修改了minion的配置,那么在master看到的主机名会变的好伐??

id:master_id       #这一项在minion的配置中默认是注释掉的,如果开启了那么你在master看到的名字会以这个为准,而不再是minion 的主机名啦~~~

所以,请不要打开这个注释,如果发现不是默认机器的主机名,检查是否开启了这个配置。

 

举个🌰:[root@es1]/etc/salt# salt-key  -L

Accepted Keys:

es1

es2
Denied Keys:
Unaccepted Keys:
Rejected Keys:

在minion我没有修改id这香配置,所以我在我的管理端查看时默认就是被管理端的主机名啦~~~

至此,salt的管理端和被管理端就安装完成啦~~~是不是超级简单~~~

 

三:关联

以上两步我们只是简单的安装了salt的master和minion,此时的master还不能直接去管理minion。接下来我理解成关联,让master和minion产生联系。

这个步骤就来啦~~

[root@es1]/etc/salt# salt-key -L

Accepted Keys:

Denied Keys:
Unaccepted Keys:      #此时的公钥是未被接受的状态,所以我们还需要建立连接

es1

es2

Rejected Keys:

salt-key  -L返回信息:

Accepted Keys: 接受的公钥列表或者是被控主机

Unaccepted Keys: 未被接受的公钥列表

Rejected Keys: 被拒绝的公钥列表

 

salt-key 常用选项:

-L           ==list-all            ##显示【全部】已经或未认证的被控端id
-A           ==accept-all      ##接受所有id证书请求
-D           ==delete-all       ##删除所有的公钥
-a                                   ##接受单个id证书请求
-d                                   ##删除单个id证书请求

 

so,看完上面的,下面我们要做的就是接受公钥~~

[root@es1]/etc/salt# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:

es1
es2
Proceed? [n/Y] y

Key for minion es1 accepted.
Key for minion es2 accepted.

 

[root@es1]/etc/salt# salt-key -L
Accepted Keys:

es1
es2
Denied Keys:
Unaccepted Keys:
Rejected Keys:

连接建立结束,那么来试一试吧~~~

[root@es1]/etc/salt# salt '*' test.ping

es1:
True
es2:
True

成功,撒花~~~

小黑板再次来袭~~看过来~~

我们的管理端启动服务后,检查端口是有2个的,一个4505,一个4506。而minion是没有端口启动的,所以,是出问题了么?

no,no,no~~ 那是因为Saltstack默认使用zeromq传递消息,zeromq会随着Salt的安装而安装,master通过4505端口将指令放入zeromq的队列中,而所有的minion都会监听master的4505端口,然后从队列中拿消息进行对比决定是否进行操作,如果操作将自己操作的结果丢回zeromq另外一个队列,master从4506端口监听该队列,得到返回结果,然后展示出来。

简单来说就是:4505发送指令,4506接收结果  

 

问题总结:如果你致意要修改minion的id,发现你修改了毫无反映~~

【接下来的部分是copy的,出于尊重我将大大的地址附上,有需要的可以看大大的原文

https://www.cnblogs.com/bfmq/p/7871869.html】

启动master,生成自己的密钥与公钥,叫master.pem ,master.pub

1 [root@linux-node1 master]# pwd
2 /etc/salt/pki/master
3 [root@linux-node1 master]# ls
4 master.pem  master.pub  minions  minions_autosign  minions_denied  minions_pre  minions_rejected

minion配置文件内指定Master,开启服务,生成自己的密钥与公钥,叫minion.pem ,minion.pub

1 [root@linux-node2 minion]# pwd
2 /etc/salt/pki/minion
3 [root@linux-node2 minion]# ls
4 minion.pem  minion.pub

minion会想配置的目标发将自己的公钥存放在master的/etc/salt/pki/master/minions_pre下,请问你是我的master嘛

master一看,我靠,女装大佬,可爱,想,就表示,对对对我就是你的master,然后接受密钥,并把自己的公钥发给minion从而正式签订契约,此时minions_pre下的minion公钥转放到/etc/salt/pki/master/minions下,而master的公钥也会在minion的/etc/salt/pki/minion下保留一份

1 [root@linux-node2 minion]# ls
2 minion_master.pub  minion.pem  minion.pub

所以我们根据上述流程,当minion的id变更后,我们需要进行如下操作

复制代码
1 minion端停止salt-minion
2 master端salt-key –d 原本minion的id
3 minion端删除/etc/salt/pki/minion下所有文件
4 minion端修改配置文件中的id变成需要的新id
5 重启minion端的salt-minion
6 master端认证接受新的id

 

 

 

 


 

posted @ 2021-04-16 18:09  芒果~~  阅读(115)  评论(0编辑  收藏  举报