Ansible K8s 模块:无法在 Python /usr/bin/python3 上导入所需的 Python 库 (openshift)

新手上路,请多包涵

环境

Ansible 2.9.6 (蟒蛇3)

试图运行一个简单的剧本

- hosts: master
  gather_facts: no
  become: yes
  tasks:
    - name: create name space
      k8s:
        name: testing
        api_version: v1
        kind: Namespace
        state: present

出现以下错误

The full traceback is:
Traceback (most recent call last):
  File "/tmp/ansible_k8s_payload_u121g92v/ansible_k8s_payload.zip/ansible/module_utils/k8s/common.py", line 33, in <module>
    import kubernetes
ModuleNotFoundError: No module named 'kubernetes'
fatal: [192.168.20.38]: FAILED! => {
    "changed": false,
    "error": "No module named 'kubernetes'",
    "invocation": {
        "module_args": {
            "api_key": null,
            "api_version": "v1",
            "append_hash": false,
            "apply": false,
            "ca_cert": null,
            "client_cert": null,
            "client_key": null,
            "context": null,
            "force": false,
            "host": null,
            "kind": "Namespace",
            "kubeconfig": null,
            "merge_type": null,
            "name": "testing",
            "namespace": null,
            "password": null,
            "proxy": null,
            "resource_definition": null,
            "src": null,
            "state": "present",
            "username": null,
            "validate": null,
            "validate_certs": null,
            "wait": false,
            "wait_condition": null,
            "wait_sleep": 5,
            "wait_timeout": 120
        }
    },
    "msg": "Failed to import the required Python library (openshift) on k8smasternode's Python /usr/bin/python3. Please read module documentation and install in the appropriate location. If the required library is installed, but Ansible is using the wrong Python interpreter, please consult the documentation on ansible_python_interpreter"
}

让我困惑的是,

  • 根本原因是 “没有名为 kubernetes 的模块”
  • “无法在 Python /usr/bin/python3 上导入所需的 Python 库 (openshift)”

以及如何解决这个问题?

任何帮助,将不胜感激!

顺便提一句,

Kubernetes 主节点有 /usr/bin/python3

原文由 Hua 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
1 个回答

我参加聚会有点晚了,但是由于我今天遇到了这个问题并且没有看到可以接受的答案,所以我发布了对我有用的东西。

由于您在远程服务器上运行任务,因此您必须安装 openshiftpyyamlkubernetes 在远程机器上安装。

在创建命名空间之前添加以下任务:

 - name: install pre-requisites
  pip:
    name:
      - openshift
      - pyyaml
      - kubernetes

原文由 Koshur 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题