环境
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 许可协议
我参加聚会有点晚了,但是由于我今天遇到了这个问题并且没有看到可以接受的答案,所以我发布了对我有用的东西。
由于您在远程服务器上运行任务,因此您必须安装
openshift
、pyyaml
和kubernetes
在远程机器上安装。在创建命名空间之前添加以下任务: