saltstack salt的安装和认证

Posted LYCong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了saltstack salt的安装和认证相关的知识,希望对你有一定的参考价值。

参考:https://repo.saltstack.com/#rhel

一,安装

  系统的环境为centos6

    master端和minion端都要配置salt的yum源。

下载安装salt源的key,并配置salt源的地址repo

[root@cong-33 nginx]#sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm 
[root@cong-33 nginx]# yum clean expire-cache

  

更新yum的cache

[root@cong-33 nginx]# yum makecache

salt的master端安装:

[root@cong-33 nginx]# yum install -y salt-master

 

salt的minion端安装:

[root@cono-49 ~]# yum install -y salt-minion

 

安装完成后,先配置minion端。

配置minion的id和指导master的地址

[root@cono-49 ~]# vim /etc/salt/minion  ##minion的主要配置文件

 

配置好上面的id 选项,master的选项就可以了

配置完成就可以启动了

[root@cono-49 ~]# service salt-minion start

 

master端

master的配置文件时 /etc/salt/master

master可以先不做配置的更改,直接启动

[root@cong-33 nginx]# service salt-master start
##监听2个端口
[root@cong-33 nginx]# netstat -tlnp|grep python
tcp        0      0 0.0.0.0:4505                0.0.0.0:*                   LISTEN      1815/python2.7      
tcp        0      0 0.0.0.0:4506                0.0.0.0:*                   LISTEN      1829/python2.7      
[root@cong-33 nginx]# 

 

通过minion端的key认证

[root@cong-33 nginx]# salt-key -L  ##查看salt的key认证情况
[root@cong-33 nginx]# salt-key -a cong-49 ##通过指定的minion认证,
[root@cong-33 nginx]# salt-key -L
Accepted Keys:     ##已通过认证的minion
cong-49
Denied Keys:
Unaccepted Keys:    ##等待确认的minion
Rejected Keys:
[root@cong-33 nginx]# 

测试master与minion是否正常通讯

[root@cong-33 nginx]# salt \'*\' test.ping  ##  \'*\' 表示所有的minion,可以输入指定的minion_id,或者使用正则匹配 匹配指定的minion
cong-49:
    True
[root@cong-33 nginx]# 

返回True说明master与minon已经可以正常通讯了。

 

下面写一点salt的相关知识点。

认证过程

启动minion服务后,会产生一个密钥对,然后minion会根据配置的master地址去连接master,并尝试把公钥发给master,minion_id表示minio的身份。

在master上可以使用salt-key来查看密钥认证的情况,直到密钥认证后,master和minion就可以通信了,我们就可以通过state模块来管理minion。

minon密钥目录

[root@cono-49 ~]# ll /etc/salt/pki/minion/
total 12
-rw-r--r--. 1 root root  450 Nov 15 09:59 minion_master.pub  ##认证通过后master发过来的master公钥
-r--------. 1 root root 1674 Nov 15 09:58 minion.pem
-rw-r--r--. 1 root root  450 Nov 15 09:58 minion.pub
[root@cono-49 ~]# 
在minion服务没有启动时,pki目录是不存在的。minion服务启动后,会创建pki目录,minion目录和密钥对。
我们可以把pki目录删除,然后重启服务会重新生成pik目录。
 
master密钥目录
[root@cong-33 nginx]# ll /etc/salt/pki/master/minions
total 4
-rw-r--r--. 1 root root 450 Nov 15 17:59 cong-49  ##已通过的minion密钥
[root@cong-33 nginx]# 
master接受minion的公钥后会存放在/etc/salt/pki/master/minions目录下,以minion的id来命名。
同时master会把自身的公钥发给minion。
 
master端的pki目录千万不要删除,因为这个目录包含了所有minion的认证密钥。不过我们可以删除指定minion的密钥文件。
也可以 用命令salt-key删除指定minion的key认证
 
 
重新认证:
 在master把对应的minion的key删掉: 
salt-key -d 192.168.1.49

查看密钥保存目录是否存在对应mining的密钥key,如果存在删除它 

[root@cong-33 nginx]# ll /etc/salt/pki/master/minions

 

minion端

停止minion服务: 
[root@cono-49 ~]# /etc/init.d/salt-minion stop

删除key目录让其重新生成:

rm -rf /etc/salt/pki

启动服务

/etc/init.d/salt-minion start

 

salt-key命令
salt-key -L  列出master的key认证情况
salt-key -a minion_id  通过指定minion的key认证
salt-key -A   批量通过minion的key认证
salt-key -d minion_id 删除指定minion的key认证
salt-key -D   批量删除minion的key认证

 

 

minion没有监听端口的。minion在通过与master的key认证后一直与master的4505端口保持连接。

master监听4505和4506两个端口,

4505是消息发布端口,

4506是消息接收端口,接收执行返回结果和命令执行情况的

 

以上是关于saltstack salt的安装和认证的主要内容,如果未能解决你的问题,请参考以下文章

salt stack安装与使用

部署SaltStack及批量安装httpd服务

SaltStack

SaltStack

部署SaltStack及批量安装httpd服务

saltstack管理saltstack认证相关