python saltstack模块

Salt 是:
一个配置管理系统,能够维护预定义状态的远程节点(比如,确保指定的报被安装,指定的服务在运行)
一个分布式远程执行系统,用来在远程节点(可以是单个节点,也可以是任意规则挑选出来的节点)上执行命令和查询数据
开发其的目的是为远程执行提供最好的解决方案,并使远程执行变得更好,更快,更简单

SaltStack三大功能:
远程执行,
配置管理,
云管理

Saltstack的优势:
有master端和minion端,执行的信息比较稳定,不容易丢失信息,或者出现失联主机的情况

有封装好的http-api,我们可以直接启动salt-api就可以通过http协议进行调用。不需要自己进行第二次的封装

SaltStack安装基础环境准备

基于centos6和centos7的差异,在两个不同的操作系统中安装saltstack也是不一样的。

Centos6需要先安装扩展源,然后在进行安装:
Master端
yum install –y salt-master
Yum install –y salt-api

Minion端:
Yum install -y salt-minion

源码安装:http://note.youdao.com/noteshare?id=881bbdbb6fd7bca9f74360aa052b79a4&sub=EEDE33154E13432FA9198021015C5C25

[root@linux-node1 ~]# cat /etc/redhat-release  ##查看系统版本

CentOS release 6.7 (Final)

[root@linux-node1 ~]# uname -r ##查看系统内核版本

2.6.32-573.el6.x86_64

[root@linux-node1 ~]# getenforce ##查看selinux的状态

Enforcing

[root@linux-node1 ~]# setenforce 0 ##关闭selinux

[root@linux-node1 ~]# getenforce  

Permissive

[root@linux-node1 ~]# /etc/init.d/iptables stop

[root@linux-node1 ~]# /etc/init.d/iptables stop

[root@linux-node1 ~]# ifconfig eth0|awk -F '[: ]+' 'NR==2{print $4}' ##过滤Ip地址

192.168.0.15

[root@linux-node1 ~]# hostname ##查看主机名

linux-node1.zhurui.com

[root@linux-node1 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo [http://mirrors.aliyun.com/repo/epel-6.repo](http://mirrors.aliyun.com/repo/epel-6.repo)  ##安装salt必须使用到epel源

安装Salt

服务器:

[root@linux-node1 yum.repos.d]# yum install -y salt-master salt-minion ##salt-master包跟salt-minion包
[root@linux-node1 yum.repos.d]# chkconfig salt-master on  ##加入到开机自动启动
[root@linux-node1 yum.repos.d]# chkconfig salt-minion on  ##加入到开机自动启动
[root@linux-node1 yum.repos.d]# /etc/init.d/salt-master start   ##启动salt-master
Starting salt-master daemon:                                   [  OK  ]
启动到这里需要修改minion配置文件,才能启动salt-minion服务
[root@linux-node1 yum.repos.d]# grep '^[a-z]' /etc/salt/minion   
master: 192.168.0.15  ##指定master主机
[root@linux-node1 yum.repos.d]# cat /etc/hosts
192.168.0.15 linux-node1.zhurui.com linux-node1  ##确认主机名是否解析
192.168.0.16 linux-node2.zhurui.com linux-node2
解析结果:
[root@linux-node1 yum.repos.d]# ping linux-node1.zhurui.com
PING linux-node1.zhurui.com (192.168.0.15)56(84) bytes of data.
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=1 ttl=64 time=0.087 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=2 ttl=64 time=0.060 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=3 ttl=64 time=0.053 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=4 ttl=64 time=0.060 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=5 ttl=64 time=0.053 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=6 ttl=64 time=0.052 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=7 ttl=64 time=0.214 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=8 ttl=64 time=0.061 ms
[root@linux-node1 yum.repos.d]# /etc/init.d/salt-minion start  ##启动minion客户端
Starting salt-minion daemon:                               [  OK  ]
[root@linux-node1 yum.repos.d]#

客户端:

[root@linux-node2 ~]# yum install -y salt-minion  ##安装salt-minion包,相当于客户端包
[root@linux-node2 ~]# chkconfig salt-minion on  ##加入开机自启动
[root@linux-node2 ~]# grep '^[a-z]' /etc/salt/minion   ##客户端指定master主机
master: 192.168.0.15
[root@linux-node2 ~]# /etc/init.d/salt-minion start  ##接着启动minion
Starting salt-minion daemon:                               [  OK  ]

Salt秘钥认证设置

Master与Minion认证

minion在第一次启动时,会在/etc/salt/pki/minion/(该路径在/etc/salt/minion里面设置)下自动生成minion.pem(private key)和 minion.pub(public key),然后将 minion.pub发送给master。master在接收到minion的public key后,通过salt-key命令accept minion public key,这样在master的/etc/salt/pki/master/minions下的将会存放以minion id命名的 public key,然后master就能对minion发送指令了。

salt-key -L 或者salt-key 显示所有的key
salt-key -D :删除所有认证主机id证书
salt-key -d keys_values -y
salt-key -A:接收所有id证书请求
salt-key -a id :接受单个id证书请求

1,使用salt-kes -a linux*命令之前在目录/etc/salt/pki/master目录结构如下


python saltstack模块_第1张图片
python saltstack模块_第2张图片
image.png

2,使用salt-kes -a linux*命令将秘钥通过允许,随后minions_pre下的文件会转移到minions目录下

[root@linux-node1 minion]# salt-key -a linux*
The following keys are going to be accepted:
UnacceptedKeys:
linux-node1.zhurui.com
linux-node2.zhurui.com
Proceed?[n/Y] Y
Keyfor minion linux-node1.zhurui.com accepted.
Keyfor minion linux-node2.zhurui.com accepted.
[root@linux-node1 minion]# salt-key
AcceptedKeys:
linux-node1.zhurui.com
linux-node2.zhurui.com
DeniedKeys:
UnacceptedKeys:
RejectedKeys:
python saltstack模块_第3张图片
image.png

3,此时目录机构变化成如下:


python saltstack模块_第4张图片
image.png

4,并且伴随着客户端/etc/salt/pki/minion/目录下有master公钥生成


python saltstack模块_第5张图片
image.png

安装也可参照:
https://www.cnblogs.com/lgeng/p/6567424.html

你可能感兴趣的:(python saltstack模块)