【问题标题】:Ansible unable to find `zabbix-api`Ansible 找不到`zabbix-api`
【发布时间】:2019-09-12 00:25:14
【问题描述】:

问题

在这种情况下,Ansible 无法找到 Zabbix API。 Ansible 在运行调用 zabbix-api 模块的 playbook 时会出现以下错误:

msg: 'Missing required zabbix-api module (check docs or install with: pip install zabbix-api)'

环境

运行 Ubuntu 18.04 的控制节点包含多个 python 解释器 (2.7/3.6/3.7)。 Zabbix API 已使用 pip (pip install zabbix-api) 安装在控制节点上,用于/usr/local/lib/python2.7/dist-packages/ 中的 python2.7。这可以在运行以下命令后观察到:

import imp
imp.find_module('zabbix_api')

哪个输出:

(<open file '/usr/local/lib/python2.7/dist-packages/zabbix_api.py', mode 'U' at 0x7f102e990540>, '/usr/local/lib/python2.7/dist-packages/zabbix_api.py', ('.py', 'U', 1)

检查

我已经确定:

  • Ansible 加载正确的 Python 解释器:ansible_python_interpreter=/usr/bin/python
  • PATH 包含解释器的site-packagesdist-packages 的路径
  • 解释器可以加载zabbix_api库:python -c "import zabbix_api"
  • zabbix_api.py 权限正确
  • sys.path 包含到 zabbix_api 目录的路径:
import sys
print '\n'.join(sys.path)

哪些输出:

    /usr/lib/python2.7
    /usr/lib/python2.7/plat-x86_64-linux-gnu
    /usr/lib/python2.7/lib-tk
    /usr/lib/python2.7/lib-old
    /usr/lib/python2.7/lib-dynload
    /home/peter/.local/lib/python2.7/site-packages
    /usr/local/lib/python2.7/dist-packages
    /usr/lib/python2.7/dist-packages

我在这里缺少什么?还有其他需要考虑的因素吗?

【问题讨论】:

  • 您的任务看起来如何,是否有local_action 或其他从控制器运行任务的方式?如果没有,这将在目标主机上运行。
  • Richlv & Iain Shelvington,请看下面我的回答。您的指点帮助我意识到主机文件配置错误。

标签: python ansible zabbix


【解决方案1】:

此问题的原因是主机文件配置错误:Ansible 的目标服务器错误。确保在 localhost 上执行 playbook 后,问题已解决。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多