一、错误发现

运行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下

wKiom1d83lmRtz4eAACj9SeCfks825.png-wh_50

发现新版本的ansible2.1(使用的是python2.6版本)

解决:

wKioL1d83pyw6Qr0AABwsBScdTw781.png-wh_50

[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

根据提示进入

wKiom1d830uySHKpAAC6Yug-WjY133.png-wh_50

红色标记部分默认没注释,这里解释下报错信息:libgmp 版本需要>= 5,而环境不满足。

解决方法有2:

1、如图注释掉这两行,不影响使用,只是把错误隐藏而已。最根本解决升级libgmp版本即可。

2、按要求升级libgmp版本。

四、问题已解决

wKiom1d84AyTr9MrAACZvMJsx5w061.png-wh_50