nikoo 发表于 2018-1-3 19:53:31

saltstack salt的安装和认证

  参考:https://repo.saltstack.com/#rhel
  一,安装
  系统的环境为centos6
  master端和minion端都要配置salt的yum源。
  下载安装salt源的key,并配置salt源的地址repo
  

#sudo yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm  

# yum clean expire-cache  

  更新yum的cache
  

# yum makecache  

  salt的master端安装:
  

# yum install -y salt-master  

  salt的minion端安装:
  

# yum install -y salt-minion  

  安装完成后,先配置minion端。
  配置minion的id和指导master的地址
  

# vim /etc/salt/minion  ##minion的主要配置文件  



  配置好上面的id 选项,master的选项就可以了
  配置完成就可以启动了
  

# service salt-minion start  

  master端
  master的配置文件时 /etc/salt/master
  master可以先不做配置的更改,直接启动
  

# service salt-master start  
##监听2个端口
  
[iyunv@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  
[iyunv@cong
-33 nginx]#   

  通过minion端的key认证
  

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

  测试master与minion是否正常通讯
  

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

  返回True说明master与minon已经可以正常通讯了。
  下面写一点salt的相关知识点。
  认证过程
  启动minion服务后,会产生一个密钥对,然后minion会根据配置的master地址去连接master,并尝试把公钥发给master,minion_id表示minio的身份。
  在master上可以使用salt-key来查看密钥认证的情况,直到密钥认证后,master和minion就可以通信了,我们就可以通过state模块来管理minion。
  minon密钥目录
  

# ll /etc/salt/pki/minion/  
total
12  
-rw-r--r--. 1 root root450 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 root450 Nov 15 09:58 minion.pub
  
#
  


在minion服务没有启动时,pki目录是不存在的。minion服务启动后,会创建pki目录,minion目录和密钥对。
我们可以把pki目录删除,然后重启服务会重新生成pik目录。
master密钥目录  

# ll /etc/salt/pki/master/minions  
total
4  
-rw-r--r--. 1 root root 450 Nov 15 17:59 cong-49  ##已通过的minion密钥
  
#
  


master接受minion的公钥后会存放在/etc/salt/pki/master/minions目录下,以minion的id来命名。
同时master会把自身的公钥发给minion。
master端的pki目录千万不要删除,因为这个目录包含了所有minion的认证密钥。不过我们可以删除指定minion的密钥文件。
也可以 用命令salt-key删除指定minion的key认证
重新认证:
参考:http://732233048.blog.51cto.com/9323668/1640774
在master把对应的minion的key删掉:  

salt-key -d 192.168.1.49  

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

# ll /etc/salt/pki/master/minions  

  minion端

停止minion服务:  

# /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是消息接收端口,接收执行返回结果和命令执行情况的
页: [1]
查看完整版本: saltstack salt的安装和认证