将SaltStack从2017.7升级为2019.2版本的升级操作指南

文章目录

  • 背景概况
  • 升级前的准备工作
  • 操作步骤
    • 将salt-repo yum安装源升级为 salt-repo-2019.2 版本
    • 执行升级salt-master软件包版本的命令
    • 检查下安装成果
    • 替换salt master使用的配置文件
  • 在Salt Master节点上对主要功能做些测试
  • 升级下Salt周围边的相关软件包
  • 将salt-minion升级至2019.2版本的方法
    • 在salt minion节点上执行版本升级命令
    • 更新下/etc/salt/minion配置文件

背景概况

SaltStack官网针对十几个Linux/Unix发行版本,提供了安装与升级资源、文档。依托于官网提供的资源,安装SaltStack就很简单了,各个Linux发行版本的Salt安装方法详见:https://repo.saltstack.com/

可以在以下地址中查找需要使用redhat版本的Salt repo安装包:https://repo.saltstack.com/yum/redhat/

目前看,SaltStack官方安装源在同时支持redhat的5/6/7三个大的Linux发行版本。

本文讲解的是在CentOS7上将Salt 2017.7版本升级至目标版本:2019.2 。

以下会是我们主要使用的yum安装资源文件:

  • centos7 Salt yum 安装源:https://repo.saltstack.com/yum/redhat/salt-repo-2019.2.el7.noarch.rpm
  • centos6 Salt yum 安装源 :https://repo.saltstack.com/yum/redhat/salt-repo-2019.2.el6.noarch.rpm

升级前的准备工作

对使用中的Salt软件进行版本升级,会存在数据丢失、功能失常的一些未知风险。

为了提高升级的成功率,建议搭建了一套仿真环境进行升级方案的技术和功能验证。尤其是自己使用比较多的那部分功能,需要仔细测试。

可以从以下几个方面着手:
(1)检查Salt 模块功能在新旧发行版本间的功能变化,这个可以翻阅下Salt官方文档,查看下在2019.2发行版本中主要功能模块涉及功能与配置项的增、删、变更的说明。
(2)Master/Minion版本组合的功能兼容性验证

  • 2019.2版本Master+2017.7版本Minion
  • 2019.2版本Master+2019.2版本Minion
    考虑到Master升级到2019.2版本后,处理全部Minions的版本升级需要一段时间,有必要对以上版本间的兼容性进行验证测试。

(3)备份Salt Master上的密钥文件及配置数据

tar zcf etc.salt.tgz /etc/salt
  • 备份重要数据,以防意外。这个位置上的配置数据,密钥数据是比较容易受到影响的一部分数据。

操作步骤

将salt-repo yum安装源升级为 salt-repo-2019.2 版本

直接在Salt Master节点上执行以下命令,即可安装2019.2版本的yum源,同时会清除原2017.7版本的repo软件包。

# yum install https://repo.saltstack.com/yum/redhat/salt-repo-2019.2.el7.noarch.rpm

确保上面的命令得到了完整的、正确的执行,然后进行下面的升级Salt的操作。

执行升级salt-master软件包版本的命令

# yum update salt-master

这个命令,在安装成功新版本后,会自动删除掉旧版本的软件包。

检查下安装成果

# rpm -qa salt*
salt-repo-2019.2-1.el7.noarch
salt-2019.2.0-1.el7.noarch
salt-minion-2019.2.0-1.el7.noarch
salt-master-2019.2.0-1.el7.noarch
  • 如果上面命令没有输出,可以试下分别检查rpm -q salt-repo, rpm -q salt, rpm -q salt-master
  • 检查下master上的密钥数据以及配置文件,确认未受升级影响。在我们的验证测试和升级内部环境Salt版本时,/etc/salt下的密钥数据仍是原2017.7版本所留下来的,均没有被更新,也没有少数据。
  • 在使用yum升级salt master版本后,随新版本带来的master配置文件被保存为/etc/salt/master.rpmnew,这个配置文件需要我们手动做一下替换。随新版本而来的功能变更,也需要新版本配置文件的支持。

替换salt master使用的配置文件

systemctl stop salt-master
mv /etc/salt/master /etc/salt/master.bak
mv /etc/salt/master.rpmnew /etc/salt/master
  • 对照新旧配置文件,手动将原配置文件中调整过的配置项内容,同步到新版本的配置文件中去。

在确认新版本配置文件的内容得到正确更新后,启动salt-master服务:

systemctl start salt-master

在Salt Master节点上对主要功能做些测试

测试远程执行管理命令:

# salt test-server cmd.run "ifconfig -a"

测试mysql模块的管理功能:

# salt test-server mysql.query test "show tables"
  • 查看 test 库下有哪些表

测试下state状态配置管理功能:

# salt test-server state.apply abc-state

# salt test-server state.apply
  • 在带state模块名称时,state.apply 功能上等同于执行state.sls
  • 在不带state模块名称时,state.apply 功能上等同于执行state.highstate

升级下Salt周围边的相关软件包

在Salt Master上执行salt-call -V 查看下当前Salt Master依赖的周边工具包版本,对照下2019.2版本的yum源,建议升级以下几个软件包。

# yum update python-zmq m2crypto python

# systemctl restart salt-master
  • zeromq是Salt重度依赖的一个工具,但Salt 2019.2和2017.7版本使用的都是 zeromq-4.1.4 版本。

将salt-minion升级至2019.2版本的方法

在salt minion节点上执行版本升级命令

yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-2019.2.el6.noarch.rpm
yum -y update salt-minion
salt-call service.restart salt-minion
  • 上面是centos6的示例,centos7时改为执行yum -y install https://repo.saltstack.com/yum/redhat/salt-repo-2019.2.el7.noarch.rpm

注意检查下升级结果,执行 ps -ef|grep salt 查看下运行中的salt进程是不是刚启动的。如果salt-minion有更早时间以前的进程存在,直接kill掉即可,这是因为重启操作未能关掉。

更新下/etc/salt/minion配置文件

使用yum升级salt-minion版本后,并不会直接替换你原有的/etc/salt/minion配置文件。新版本的配置文件以minion.rpmnew的名称保存在配置目录下。这样处理是比较稳妥的,因为有时我们会在minion配置文件中按需调整多个配置项,直接覆盖原来旧版本的配置文件显然不妥。
请手工予以调整和替换,然后重启salt-minion服务。

你可能感兴趣的:(SaltStack)