我正在使用OSX.10.12.4
。
我从github下载了ansible并尝试运行它。 这是执行ansible时我得到的。
$> ansible
ERROR! Unexpected Exception: 'module' object has no attribute '_vendor'
the full traceback was:
Traceback (most recent call last):
File "/Users/juneyoungoh/Documents/DEV_TEST/ansible/ansible/bin/ansible", line 88, in <module>
mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass)
File "/Users/juneyoungoh/Documents/DEV_TEST/ansible/ansible/lib/ansible/cli/__init__.py", line 28, in <module>
import yaml
File "build/bdist.macosx-10.12-intel/egg/yaml/__init__.py", line 14, in <module>
File "build/bdist.macosx-10.12-intel/egg/yaml/cyaml.py", line 5, in <module>
File "build/bdist.macosx-10.12-intel/egg/_yaml.py", line 7, in <module>
File "build/bdist.macosx-10.12-intel/egg/_yaml.py", line 3, in __bootstrap__
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/pkg_resources/__init__.py", line 90, in <module>
packaging = pkg_resources._vendor.packaging
AttributeError: 'module' object has no attribute '_vendor'
我在本地(2.7.10
和3.6.1
)获得了2个版本的python。这可能是导致此错误的原因?我该怎么做才能解决这个问题?
brew install ansible
或pip install ansible
感谢。
答案 0 :(得分:1)
可能你因为某种依赖而失败了。 Ansible提供requirements.txt
,您应该使用pip install -r
。
它对我有用:
cd /tmp
git clone https://github.com/ansible/ansible.git
cd ansible
pip install -r requirements.txt
python setup.py install
证明:
$ ansible --version
ansible 2.4.0
config file =
configured module search path = [u'/Users/amadeu/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python2.7/site-packages/ansible-2.4.0-py2.7.egg/ansible
executable location = /usr/local/bin/ansible
python version = 2.7.13 (default, Dec 17 2016, 23:03:43) [GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.42.1)]
答案 1 :(得分:1)
要在Mac OSX中安装ansible,建议的方式是使用pip。
首先,您需要使用命令安装pip
sudo easy_install pip
或
sudo python -m ensure pip //(installing pip via python)
然后使用以下命令进行安装
sudo pip install ansible
完成后,您可以使用来检查ansible的版本
ansible —version
现在Ansible已成功安装。现在要与客户端计算机通信,需要SSH身份验证。我假设已设置SSH。
现在,ansible将查找包含客户端所有IP的主机文件。转到/ etc / ansible /路径。如果该路径不存在,请转到/ etc并创建名称为“ ansible”的目录 sudo mkdir ansible
进入该目录并创建主机文件。
cd ansible
sudo vi hosts
编辑您的主机文件,如下所示。
[clients]
10.20.200.211 //Replace with your client’s ip address
现在尝试ping所有客户
ansible all -m ping
期望的输出是这样的。
10.20.200.211 | SUCCESS => {
"changed": false,
"ping": "pong"
}
现在您可以创建和播放剧本文件了:)
答案 2 :(得分:0)
仅需3个步骤,即可在Mac OS X 11上安装Ansible
pip3 install ansible
sudo mkdir -p /etc/ansible
sudo nano /etc/ansible/hosts
将服务器IP添加到主机文件
[网络]
198.20.200.211 //替换为客户的IP地址
检查连接状态
ansible all -m ping