Ansible是时下比较流行的自动化运维工具,是用Python编写的。
我的系统是Ubuntu 16.04.3 LTS。
用以下命令安装:
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo apt-add-repository ppa:ansible/ansible
$ sudo apt-get update
$ sudo apt-get install ansible
安装过程是非常顺利的。但在测试运行:
$sudo ansible all -m ping
时,却遇到了:
AttributeError: 'module' object has no attribute 'PROTOCOL_SSLv3'
的问题。在Overflow找到的解答,说这是urllib3 1.10前的版本造成的,但我的urllib是1.2版本。但Overflow上提供了强制升级requests的解决方案。
我查了以下已安装模块的版本:
python-apt (1.1.0b1)
python-dateutil (2.5.3)
python-debian (0.1.27)
python-editor (1.0)
pytz (2016.4)
pyxdg (0.25)
PyYAML (3.11)
requests (2.3.0)
scipy (0.17.0)
确实requests的版本是偏低的。首先卸载pyopenssl,然后:
pip install requests==2.6.0
然后重新安装pyopenssl。
再重新运行:
$sudo ansible all -m ping
显示:localhost | SUCCESS => {
"changed": false,
"ping": "pong"
}
问题解决。