在OSX上安装Ansible

时间:2017-05-11 00:47:46

标签: macos python-2.7 python-3.x ansible

我正在使用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.103.6.1)获得了2个版本的python。这可能是导致此错误的原因?我该怎么做才能解决这个问题?

  • 我确实想用二进制源安装它,而不是brew install ansiblepip install ansible

感谢。

3 个答案:

答案 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