1、SaltStack版本兼容性的问题说明
saltstack 2017.1以后发布的版本中,已经不再兼容支持python2.6。官方声称对core functionality部分仍然可以保持兼容性,但针对大量的第三方modules,例如MySQLdb,已经不再提供支持。因为RHEL6/CENTOS6系统默认使用的均是python2.6,所以一旦人为升级了saltstack版本至2017.1或更新的版本,可能就会面临这样的挑战——以前基于python2.6兼容的功能模块所开发的saltstack应用,将无法使用。详情参见下面链接。
https://github.com/saltstack/salt/issues/42979
如果你使用的是RHEL/CENTOS6系统,且已经对系统中的saltstack版本升级到了2017.1之后的版本,你会发现在升级的过程中安装了一个python2.7,以及少量几个python2.7使用的功能模块软件包,例如 pycrypto: 2.6.1 。
因此,当salt master和salt minion的版本都升级至2017.1后的相同版本时,即使你的salt minion是运行在RHEL6/CENTOS6上面的,仍然可以正常运行salt的核心功能模块,例如cmd,cp.push,cp.get_file等。原因就在于salt minion是使用的自带的python2.7环境和已经安装了的几个必要的功能模块。
引时查看salt minon的版本信息,会大致显示如下:
2、对于大量的第三方python模块,saltstack自带的python2.7环境中均未提供,凡是使用这类第三方python模块实现的功能这时都会失灵
以MySQLdb模块为例,在升级了salt master和salt minion的版本后,执行下面的mysql.query命令时 错: 原因就在于,虽然salt minion的系统环境中默认的是python2.6,且已安装了MySQLdb模块,但供salt minion 2017.7软件使用的/usr/bin/python2.7中却是没有安装MySQLdb模块的。这就让凡是使用到MySQLdb模块的saltstack程序,在升级版本后,都会 错。
3、针对RHEL6/CENTOS6系统升级salt minon至2017.7版本后,解决缺少依赖的第三方python2.7模块的方法
安装以下软件包: 对于源码编译安装的mysql,还需手动创建一个下面的软链接,不然python2.7在import MySQLdb时会 错: 此时再查看salt minion的版本信息时可以看到已经显示为安装了MySQLdb模块了:
4、执行一个salt的mysql.query模块操作命令验证一下
文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208551 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!