关于saltstack版本信息的一点总结
salt github地址:https://github.com/saltstack/salt
目前salt的几个主要版本参见github里面的版本线图,最新的是2017.7,貌似有点不太友好,可能不太兼容之前master的一些配置,当我直接从2015.10版本升级到2017.7的版本的时候,执行任务时报错,且影响到之前的外部job store配置,报错信息如下:
(1)Could not deserialize msgpack message.This often happens when trying
to read a file not in binary modeTo see message payload, enable debug logging
and retry. Exception: unpack(b) received extra data.
(2)KeyError: "Returner 'mysql' does not support function prep_jid"
将salt-master版本将至salt-master 2016.11.7时,没有报错信息产生,至于兼容性
怎么样,有待观察。
版本升级的动机:
由于最近在整理一些salt的官方文档的时候,发现salt package manager的功能在
2015年的版本中没有,比较了2015的文档和2016年的文档,之间的差异有些地方较大
为了便于以后功能提升和安全考虑尽量跟上官方的脚步吧。
salt包的下载地址:
(1)在官方站点下载,可选择对应的平台
https://repo.saltstack.com/
(2)在github上下载
https://github.com/saltstack/salt/releases
(3)在系统yum里下载
https://repo.saltstack.com/2016.11.html#rhel
简单介绍一下安装:
(1)配置saltstack源:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 [saltstack-repo] 2 name=SaltStack repo for RHEL/CentOS $releasever 3 baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest 4 enabled=1 5 gpgcheck=0
(2)配置某一版本的saltstack源
参见:https://repo.saltstack.com/2016.11.html#rhel
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 [salt-2016.11] 2 name=SaltStack 2016.11 Release Channel for RHEL/Centos $releasever 3 baseurl=https://repo.saltstack.com/yum/redhat/6/$basearch/2016.11 4 failovermethod=priority 5 enabled=1 6 gpgcheck=1 7 gpgkey=file:///etc/pki/rpm-gpg/saltstack-signing-key
设置域名解析能访问公网即可使用。官方文档查看方法:
https://docs.saltstack.com/en/2015.8/topics/spm/index.html#building-packages
将en后面日期的那部分替换成对应的版本即可查看对应的salt版本的说明文档
遇见的一些故障的解决方法:
(1)2016.11版本执行命令的时候出现warning
[WARNING ] Cannot resolve address None info via socket: <class 'socket.gaierror'>
这是由于本地的主机名设置解析出了问题,使用如下python命令检查:
python -c 'import socket, platform; print(socket.getfqdn()); print(socket.gethostname()); print(platform.node());'
在/etc/sysconfig/network文件中设置好主机民,在hosts文件中设置好解析,修改hostname变量即可解决此问题。
(2)在安装salt-minion一些较高版本的时候可能会出现一些组件的版本依赖问题
之前有遇到过ZMQ的版本问题,导致salt-minion服务异常,又由于系统内部复杂的库依赖关系导致安装高版本的ZMQ很困难。
解决办法:将其他系统已经安装好的高版本ZMQ库拷贝过来即可。
注意:salt-master提供向下兼容,最好是master的版本比minion端高或持平。