一、错误发现
运行ansbile时候报错:
[root@master146 modules]#ansible --version
Traceback (most recent call last):
File "/usr/bin/ansible", line 45, in <module>
import ansible.constants as C
ImportError: No module named ansible.constants
解决思路:由于之前使用的python2.7编译安装的ansible2.0.1版本,但由于升级卸载掉了。从本质来看可以判断是缺少modules。
二、开始解决
[root@master146 modules]# cd /usr/local/lib/python2.7/site-packages/
[root@master146 site-packages]# ls
Crypto
easy-install.pth
ecdsa
ecdsa-0.11-py2.7.egg-info
Jinja2-2.7.3-py2.7.egg
MarkupSafe-0.9.3-py2.7-linux-x86_64.egg
paramiko-1.15.1-py2.7.egg
pycrypto-2.6.1-py2.7.egg-info
PyYAML-3.11-py2.7.egg-info
README
setuptools-7.0-py2.7.egg
setuptools.pth
simplejson-3.6.5-py2.7-linux-x86_64.egg
yaml
_yaml.so
问题来了:这里没看到ansible目录,我们在查看python2.6下
发现新版本的ansible2.1(使用的是python2.6版本)
解决:
[root@master146 site-packages]# ansible --version
/usr/local/lib/python2.7/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
ansible 2.1.0.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
那么问题来了:这里又出现报错。
三、解决错误问题2
根据提示进入
红色标记部分默认没注释,这里解释下报错信息:libgmp 版本需要>= 5,而环境不满足。
解决方法有2:
1、如图注释掉这两行,不影响使用,只是把错误隐藏而已。最根本解决升级libgmp版本即可。
2、按要求升级libgmp版本。
四、问题已解决
本文出自 “用心创造价值,晚点咖啡” 博客,请务必保留此出处http://wandiankafei.blog.51cto.com/10878910/1811609
原文地址:http://wandiankafei.blog.51cto.com/10878910/1811609