gpt4 book ai didi

kubernetes - Ansible 错误 : "[Errno 2] No such file or directory"

转载 作者:行者123 更新时间:2023-12-02 12:02:20 29 4
gpt4 key购买 nike

我无法在 ansible 命令模块中执行 kubectl(v1.16.3) 命令。

例如使用 ansible 创建命名空间。

    tasks:       - name: "Creating Directory"         file:           path: ~/ansible_ns/demo_namespaces           state: directory       - name: "Creating Namespaces(1/2)"         copy:           content: "apiVersion: v1 \nkind: Namespace \nmetadata: \n     name: {{item}} "           dest: "~/ansible_ns/demo_namespaces/{{item}}.yml"         with_items:           - "{{ namespace }}"       - name: "Creating Namespaces(2/2)"         command: "kubectl create -f {{item}}.yml --kubeconfig=/var/lib/kubernetes/kubeconfig.yaml"         args:           chdir: ~/ansible_ns/demo_namespaces/         ignore_errors: true         with_items:           - "{{ namespace }}"

I'm ending up with the below error:

(item=ns) => {    "ansible_loop_var": "item",    "changed": false,    "cmd": "kubectl create -f ns.yml --kubeconfig=/var/lib/kubernetes/kubeconfig.yaml",    "invocation": {        "module_args": {            "_raw_params": "kubectl create -f ns.yml --kubeconfig=/var/lib/kubernetes/kubeconfig.yaml",            "_uses_shell": false,            "argv": null,            "chdir": "/root/ansible_ns/demo_namespaces/",            "creates": null,            "executable": null,            "removes": null,            "stdin": null,            "stdin_add_newline": true,            "strip_empty_ends": true,            "warn": true        }    },    "item": "ns",    "msg": "[Errno 2] No such file or directory",    "rc": 2}

NOTE: But I'm able to do "kubectl create -f .." manually..and it is creating the stuff.

My Ansible version:

$ ansible --version
ansible 2.9.2
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/mdupaguntla/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]

仅供引用,我也尝试过使用 Ansible - 2.4.2。但没有运气。

我的系统操作系统:CentOS 7

我的疑问:
  • 在我的上下文中,这个错误是什么意思“[Errno 2] 没有这样的文件或目录”?
  • 我知道 Ansible 引入了 kubectl & k8s 模块:社区中是否有人在使用这些模块。如果是,请告诉我如何使用它们。如果他们有任何先决条件 - 请分享
    对于 kubectl 模块:开始知道先决条件是 kubectl go library.May 我知道我在哪里可以
    得到这个图书馆。
  • 当 kubectl 版本为 1.8 且 ansible 版本为 2.4.2 时 - 我能够使用命令模块获取使用“kubectl create -f ...”创建的 K8s 资源。但是当我将集群从 v1.8 升级到 v1.16.3 时 - 我无法使用命令模块使用“kubectl create -f ...”创建资源。如果我错过了做事,请告诉我。

  • 提前感谢社区

    最佳答案

    您必须在命令模块中添加 kubectl 的路径。

    command: "/the/path/kubectl create -f {{item}}.yml .........."

    这是因为 $PATH 没有用 kubectl 的路径更新。您也可以将路径添加到 $PATH,而不是在命令模块中提供路径。

    关于kubernetes - Ansible 错误 : "[Errno 2] No such file or directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59733715/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com