在使用salt进行软件管理的时候,有些节点报 No module named yum 的错误。经过排查,发现是因为升级了minion端Python版本后产生的问题
msater
1 | $ salt 'vm3.salt.com' pkg.install httpd |
服务器自带的Python版本是2.6.6 由于其他业务的需求,Python的版本升级到了2.7.10,升级后首先yum命令处于不可用的状态,通过修改/usr/bin/yum
文件的第一行#!/usr/bin/python
为#!/usr/bin/python2.6
来修复yum命令的使用
由于系统默认的Python已经由2.6.6变更到了2.7.10
1 | $ ls -l /usr/bin/python |
salt master在派发任务后,minion接收到任务并在本地使用默认的Python来执行,实际使用了升级后默认的Python2.7.10,导致Python报找不到yum模块的错误
在网上搜索了很多方案,全部是修改yum默认使用的Python版本来解决问题,貌似不能通过让yum来支持高版本的Python来解决问题。so,要解决salt minion本地调用yum不报错,就必须要保证其使用Python2.6.6来执行!解决方案和yum命令的修复方式相同:
1 | $ head /usr/bin/repoquery |
将/usr/bin/repoquery
文件第一行的#!/usr/bin/python -tt
更改为#!/usr/bin/python2.6 -tt
即可