在OSX上安装Ansible

3

我正在使用 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个版本的 Python (2.7.103.6.1),这可能导致出现错误。如何解决?

  • 我想使用二进制源安装,而不是使用 brew install ansible 或者 pip install ansible

谢谢。

4个回答

3

可能是由于某些依赖项导致您的失败。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)]

2
在Mac OSX上安装Ansible,推荐使用pip。
首先需要使用以下命令安装pip:
sudo easy_install pip

或者
sudo python -m ensure pip   //(installing pip via python)

然后使用以下命令安装Ansible:
sudo pip install ansible

完成后,您可以使用以下命令检查ansible的版本:
ansible —version

现在Ansible已经成功安装。现在需要进行SSH身份验证才能与客户端机器通信。我假设SSH已经设置好。

现在,Ansible将查找包含所有客户端IP的主机文件。转到/etc/ansible/路径。如果该路径不存在,请转到/etc并创建名为“ansible”的目录。 sudo mkdir ansible

进入该目录并创建hosts文件。

cd ansible
sudo vi hosts

编辑您的 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"
}

现在你可以创建和使用Playbook文件进行操作 :)

1

我用以下方法解决了这个问题。

  1. 安装 python3,以便使用 pip3
  2. sudo pip3 install pyyaml
  3. sudo pip3 install ansible
  4. sudo pip3 install ansible --upgrade

当你输入 pip 命令时,它会使用原始的系统 python。(在我的情况下可能是 2.7.0


0

在 Mac OS X 11 上安装 Ansible 只需三个简单步骤

 pip3 install ansible

 sudo mkdir -p /etc/ansible

 sudo nano /etc/ansible/hosts

将服务器IP添加到hosts文件

[web]

198.20.200.211 //请用您客户端的IP地址替换

检查连接状态

ansible all -m ping

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接