SaltStack技术实践-SaltStack简介

SaltStack简介

SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块构建。通过部署SaltStack,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

SaltStack 具有以下特性,帮助企业 IT 更好的实现系统批量管理:

  1. 部署简单、管理方便;
  2. 支持大部分的操作系统,如 UnixLinuxWindows 环境;架构上使用C/S管理模式,易于扩展;
  3. 配置简单、功能覆盖广;
  4. 主控端(Master)与被控端(Minion)基于证书认证,确保安全可靠的通信;
  5. 支持 API 及自定义 Python 模块,轻松实现功能扩展;

 

 

SaltStack架构

       SaltStack 采用 C/S 的架构,SaltStack 客户端(Minion)在启动时,会自动生成一套密钥,包含私钥和公钥。之后将公钥发送给SaltStack服务器端(Master),服务器端验证并接受公钥,以此来建立可靠且加密的通信连接。同时通过消息队列 ZeroMQ 在客户端与服务端之间建立消息发布连接。

 

 

 

SaltStack部署

SaltStack的部署是比较简单的,本文准备3台机器(1台Master,2台Minion)用来部署SaltStack集群:

Host

IP

OS

Master1

172.19.225.81

Centos7

Minion1

172.19.225.82

Centos7

Minion2

172.19.225.83

Centos7

 

安装SaltStack可以在http://repo.saltstack.com/yum/redhat/查询需要的版本,先下载Yum源配置进行安装,本文将安装2018.3版本:

# wget http://repo.saltstack.com/yum/redhat/salt-repo-2018.3-1.el7.noarch.rpm

# rpm -ivh salt-repo-2018.3-1.el7.noarch.rpm

 

安装SaltStack Master

在Master节点上安装salt-master:

# yum install -y salt-master

 

安装成功后可以查询:

# salt-master --version

salt-master 2018.3.2 (Oxygen)

 

salt-master默认的配置文件是/etc/salt/master,目前可以不做修改直接启动服务:

# service salt-master start

 

安装SaltStack Minion

在Minion节点上安装salt-minion:

# yum install -y salt-minion

 

安装成功后可以查询:

# salt-minion--version

salt-minion 2018.3.2 (Oxygen)

 

salt-master默认的配置文件是/etc/salt/minion,需要指定Master的地址:

id: Minion1  or Mionion2 #设置Minion的Hostname

master:

    - Master1 #设置Master的Hostname

 

Salt命令

在安装完SaltStackMasterMinion后,SaltStack提供了许多命令, 这些命令之间的功能有一些重要的交叉,它们的主要功能如下。

  • salt-master :这是主人的守护进程。 您可以直接使用此命令或更通常通过init脚本或服务文件启动主服务。
  • salt-minion :同样,这是Minion的守护进程,用于与主沟通和执行命令。 大多数用户也将从init脚本或服务文件启动。
  • salt-key :该工具用于管理马仔公共密钥。 此工具用于查看当前密钥并对由未来密钥发送的公钥做出决定。它还可以生成键以放在带外带外。
  • salt :此命令是用来瞄准Minion才能运行即席执行模块。 这是用于远程执行的主要工具。
  • salt-ssh :该命令允许您使用SSH作为替代ZeroMQ的传输机制。
  • salt-run :该命令用于运行在主服务器上获得亚军模块。
  • salt-call :此命令用来直接在您登录到一个仆从运行执行模块。 这通常用于通过绕过主设备来调试有问题的命令。
  • salt-cloud :该命令用于控制和来自许多不同的供应商提供的云资源。 新的Minion可以很容易地启动和启动。

还有一些其他的命令,以及像salt-api  salt-cp ,和salt-syndic ,这是不使用这么频繁。

配置证书

SaltStack的Master和Minion都运行成功后,因为SaltStack是使用SSL签证的方式进行安全认证,所以接下来就需要进行证书的管理配置。

所以需要确认Master和Minion通信正常,包括TCP端口4405(Zero消息发布默认端口)和4406(SaltStack消息接受默认端口),如果有防火墙限制,可以在修改salt-master的配置项:

# The tcp port used by the publisher:

publish_port: 4505

 

# The port used by the communication interface. The ret (return) port is the

# interface used for the file server, authentication, job returns, etc.

ret_port: 4506

 

salt-minion在第一次启动时,会在/etc/salt/pki/minion/下自动生成minion.pem(private key), minion.pub(public key),然后将minion.pub发送给salt-master。

salt-master在接收到minion的public key后,在Master节点可以通过salt-key命令查询:

# salt-key -L

Accepted Keys:

Denied Keys:

Unaccepted Keys:

Minion1

Minion2

Rejected Keys:

 

可以看到salt-master已经收到key,不过还是处于未接受的状态,接下来执行同意:

# salt-key -A -y  

The following keys are going to be accepted:

Unaccepted Keys:

Minion1

Minion2

Key for minion Minion1 accepted.

Key for minion Minion2 accepted.

 

这样一来就完成了证书配置,在salt-master的/etc/salt/pki/master/minions下的将会存放以minion id命名的public key, 然后master就能对minion发送指令了:

# salt '*' test.ping       

Minion1:

    True

Minion2:

    True

 

参考

  1. https://www.jianshu.com/p/624b9cf51c64
  2. https://blog.csdn.net/ubuntu64fan/article/details/80927212
  3. https://blog.csdn.net/fanren224/article/details/73431542
  4. https://www.howtoing.com/an-introduction-to-saltstack-terminology-and-concepts/

 

 

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值