新部署了salt-master服务器,版本为salt-master-2018.3.5-1.el7,生产有几百台salt-minion版本为salt-minion-2014.1.4-1.el6,计划升级salt-minion版本到salt-minion-2018.3.5-1.el6。测试发现,salt-minion版本升级到salt-minion-2018.3.5-1.el6后,salt执行时minion端会报错,报错信息如下:
2020-05-01 17:25:13,617 [salt.minion ][WARNING ] The minion function caused an exception
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/salt/minion.py", line 791, in _thread_return
File "/usr/lib/python2.6/site-packages/salt/minion.py", line 185, in parse_args_and_kwargs
File "/usr/lib/python2.6/site-packages/salt/minion.py", line 248, in yamlify_arg
UnboundLocalError: local variable 'original_arg' referenced before assignment
升级安装salt-minion-2018.3.5-1.el6时,salt-2014.1.4-1.el6.noarch、salt-minion-2014.1.4-1.el6.noarch rpm包会同时被删除,即/usr/lib/python2.6/site-packages/salt/下已为空,salt-minion的代码已安装到/usr/lib/python2.7/site-packages/salt/下。同时会依赖安装python27-2.7.13-3.ius.el6版本,原python版本为python-2.6.6-36.el6。
查看/usr/bin/salt-minion执行程序引用的是python2.7:
more /usr/bin/salt-minion
#!/usr/bin/python2.7
'''
This script is used to kick off a salt minion daemon
'''
import salt.utils.platform
from salt.scripts import salt_minion
from multiprocessing import freeze_support
...
查看python执行文件:
ls -l /usr/bin/python*
-rwxr-xr-x 2 root root 9032 Oct 13 2012 /usr/bin/python
lrwxrwxrwx 1 root root 6 Apr 30 16:23 /usr/bin/python2 -> python
-rwxr-xr-x 2 root root 9032 Oct 13 2012 /usr/bin/python2.6
-rwxr-xr-x 1 root root 9008 Jan 11 01:18 /usr/bin/python2.7
-rwxr-xr-x 1 root root 390 Jan 11 01:28 /usr/bin/python27-chardetect
-rwxr-xr-x 1 root root 99 Jan 11 01:29 /usr/bin/python27-cherryd
-rwxr-xr-x 1 root root 78 Jan 11 01:18 /usr/bin/python2.7-pydoc
查找minion.py文件:
find / -type f -name "minion.py"
/usr/lib/python2.7/site-packages/salt/utils/minion.py
/usr/lib/python2.7/site-packages/salt/minion.py
/usr/lib/python2.7/site-packages/salt/modules/minion.py
/usr/lib/python2.7/site-packages/salt/config/schemas/minion.py
请问为什么minion端执行命令时会去找/usr/lib/python2.6/site-packages/salt/minion.py,怎么解决这个问题?