使用Python模块运行Ansible Playbook时导入错误

时间:2017-08-21 11:03:46

标签: python ansible

我正在尝试使用这些Python模块运行ansible-playbook: https://github.com/dkorn/manageiq-ansible-module/tree/master/library

我没有遇到以下错误:

  from manageiq_client.api import ManageIQClient as MiqApi
ImportError: No module named manageiq_client.api

现在,我知道我只需要在我运行的机器上安装manageiq_client,但这实际上是我无法做到的,因为我没有root权限来安装任何东西。 有人告诉我使用script

但我不确定如何。 提前谢谢!

1 个答案:

答案 0 :(得分:2)

hacking/test-module脚本用于developing a module,但它绕过了ansible执行模块的一些方法。如果您只想运行模块/剧本,请不要使用它。

所以你的问题只是将模块安装为非root用户,并让python ansible执行拾取它。尝试的选项:

  • pip install --user
  • virtualenv
  • 中投放
  • 手动设置PYTHONPATH(稍微有点棘手,以确保你只是添加...)
  • 找到tip in the FAQ如何覆盖模块的python解释器。如果你把它指向virtualenv的bin/python,那么当模块在venv“内部”运行时,你可以在venv外部执行ansible:

    virtualenv /tmp/v  # can be anywhere
    /tmp/v/bin/pip2 install manageiq_client
    ansible-playbook --extra-vars ansible_python_interpreter=/tmp/v/bin/python2 add_provider.yml
    

    (您还可以在广告资源文件中设置ansible_python_interpreter