我无法在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 }}"
我以以下错误结束:
(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 }
注意:但是我可以执行“Kubectl create-f...”手动…它在创造东西。
我的Ansible版本:
$ 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以及。但运气不好。
当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,而不是在命令模块中给出路径。
问题内容: 我正在使用Ubuntu 14.04。我有以下代码: 但我不断收到以下错误: python程序和图像都在同一位置。可能是什么问题? 问题答案: 您需要安装:
问题内容: 我想在我的一个golang控制器中指定一个html模板。我的目录结构是这样的 我想为请求/ new加载first.html。我已经将NewHandler用于url / new,并且当/ new请求到达并且在controller.go中时,NewHandler函数正在执行。这是我的代码 但是我遇到一个错误 请帮助我删除此错误。提前致谢 问题答案: 我已经通过提供html的绝对路径解决了这
我正在尝试编写一个程序,使用Scala运行Linux命令。 我写了一段代码来运行命令的功能。 代码片段 当我尝试运行命令
问题内容: 我正在尝试使用C扩展文件构建共享库,但首先我必须使用以下命令生成输出文件: 执行命令后,我得到以下错误消息: :致命错误:Python.h:没有此类文件或目录编译终止。 实际上我已经尝试了所有建议的解决方案,但是问题仍然存在…我也没有问题。我设法在我的机器上找到该文件……以前有人遇到过同样的问题吗?? 问题答案: 看来你尚未正确安装python dev的标头文件和静态库。使用软件包管理
我在流管道中进行一些文件处理,想测试一些错误条件。我想到的第一件事是打开不存在的文件。我发现我无法处理这种情况。它看起来像节点。fs不会发出“错误”事件。有人知道怎么处理这个案子吗?我读到fs也有同样的情况。取消链接。 如果文件存在,则输出: 如果文件不存在: 类似问题:这里 人们会问:是否有可能在流之前发出错误事件。on('错误',…)是否生效? 谢谢