Saltstack-安装和简单部署

简介:

SaltSack是什么?

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

Saltstack具有以下特点:

  • 部署简单、方便

  • 支持大部分UNIX/Linux及Windows环境

  • 主从集中化管理

  • 配置简单、功能强大、扩展性强

  • 主控端(Master)和被控制端(minion)基于证书认证,安全可靠

  • 支持API及自定义模块,可通过Python轻松扩展


Saltstack安装:

主控端IP:192.168.1.10

被控端IP:192.168.1.20

    主控端安装:

?
1
yum -y  install  salt-master

    开启服务和开机启动:

?
1
2
server salt-master start
chkconfig salt-master on

    

    被控端:

?
1
yum -y  install  salt-minion

    开启服务和开机启动:

?
1
2
server salt-minion start
chkconfig salt-minion on

 

监听端口,默认master开启4505,4506端口

4505(publish_port):salt的消息发布系统

4506(ret_port):salt客户端与服务端通信的端口

要保证这2个端口能通信正常,如果开启iptables需要再主控端添加以下2条规则

?
1
2
iptables -A INPUT -m state --state new -m tcp-p tcp--dport4505 -j ACCEPT
iptables -A INPUT -m state --state new -m tcp-p tcp--dport4506 -j ACCEPT

 

master主控端配置【/etc/salt/master】:

1
2
3
4
5
interface: 192.168.1.20 #绑定Mster通信IP(注意冒号后面必须加一空格)
 
auto_accept: Ture   #自动认证,避免手动运行salt-key来确认证书信任(注意冒号后面必须加一空格)file_roots:     #指定Saltstack文件根目录位置    
     base:        
         - /srv/salt

重启生效:

?
1
service salt-master restart

 

minion主控端配置【/etc/salt/minion】:

?
1
2
master: 192.168.1.10     #指定master主机IP地址(注意冒号后面必须加一空格)
id : 781915e2     #修改被控端主机识别id,建议使用操作系统主机名配置 (注意冒号后面必须加一空格)

重启生效:

?
1
service salt-minion restart

 

认证有手动和自动2种:

1.手动认证

格式:salt-key 参数 [minion端ID(可以是IP,也可以是主机名) [-y]

-L 列出当前所有认证,包括Accepted Keys、Denied Keys、Unaccepted Keys、Rejected Keys

-a 添加某个或某些个未接受(Unaccepted Keys)认证

-A 添加所有未接受(Unaccepted Keys)认证

-d 删除某个或某些个已接受(Accepted Keys)认证

-D 删除所有已接受(Accepted Keys)认证

-y 使用该参数可免去证书操作的交互,除非对minion端很信任,一般不建议使用

-h 帮助

master端操作:

?
1
2
3
4
5
6
7
8
9
10
11
12
salt-key -a 781915e2 
The following keys are going to be accepted:  
Unaccepted Keys:  
781915e2 
Proceed? [n /Y ] y  
Key  for  minion 781915e2 accepted.  
 
salt-key -LAccepted Keys:   #(接受认证的key)
781915e2
Denied Keys:
Unaccepted Keys:     #(没有接受认证的key)
Rejected Keys:

2.自动认证

在master端,/etc/salt/master取消注释:

?
1
auto_accept: True    #设置为自动接受

 

认证过程:

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 发送指令了。

 

Master 与 Minion 的连接

Saltstack master 启动后默认监听 4505 和 4506 两个端口。4505(publish_port)为 salt 的

消息发布系统,4506(ret_port)为 salt 客户端与服务端通信的端口。如果使用 lsof 查看

4505 端口,会发现所有的 Minion 在 4505 端口持续保持在 ESTABLISHED

 

检查是否运行正常(如下说明正常):

?
1
2
3
salt  '789880e2'  test . ping
781915e2 
     True


 

 

       本文转自谢育政 51CTO博客,原文链接:http://blog.51cto.com/kurolz/1934029,如需转载请自行联系原作者


相关文章
|
消息中间件 监控 网络协议
SaltStack安装Apache/Mysql/PHP部署Wordpress
SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。 SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion与master之间通过ZeroMQ消息队列通信。 master监听4505和4506端口,4505对应的是ZMQ的PUB system,用来发送消息,4506对应的是REP system是来接受
169 0
|
消息中间件 运维 Python
部署自动化运维工具SaltStack
salt是一个异构平台基础设置管理工具(虽然我们通常只用在Linux上),使用轻量级的通讯器ZMQ,用Python写成的批量管理工具,完全开源,遵守Apache2协议,与Puppet,Chef功能类似,有一个强大的远程执行命令引擎,也有一个强大的配置管理系统,通常叫做Salt State System。
1080 0
|
应用服务中间件 nginx C语言
|
消息中间件 Linux 开发工具
|
应用服务中间件 Apache 开发工具
|
网络安全 开发工具
|
消息中间件 运维 Python