【问题标题】:In Ansible, How to read configMap file in local system and remove it from remote node?在 Ansible 中,如何读取本地系统中的 configMap 文件并将其从远程节点中删除?
【发布时间】:2020-01-28 06:38:02
【问题描述】:

我的本​​地系统中有一个 configMap 文件。这个 configMap 是在 Kubernetes 集群(远程机器)中创建的。现在我正在尝试使用 ansible 从远程机器中删除 configMap。

   - hosts: k8s
     vars:
       configmap: "./configmap.yml"
       secret: "./secret.yml"

   - name: uninstall configMap file
     shell: "kubectl delete -f {{ configMap }}" 

错误如下。似乎它在 k8s 节点中查找文件。但文件在本地机器上。

"stderr": "错误:路径\"./configmap.yml\"不存在"

我也试过这个。

   - hosts: k8s
     vars:
       configmap: "{{ lookup('file', './configmap.yml') }}"

   - name: get ConfigMap
     shell: "cat {{configmap | from_yaml}} | kubectl delete -f -  "

它说改变了,好像成功但配置图没有被删除

如何从远程节点移除配置映射?

【问题讨论】:

  • ansible k8s 模块删除 configmap 怎么样?更多详情请参考k8s – Manage Kubernetes (K8s) objects
  • @DaeinPark 需要远程机器有 openshift 不可用
  • 我看到了混合的概念,这个问题对我来说并不清楚。 configMap 是一个 k8s 对象,因此您应该在 K8s 中将其删除。您是指 configMap 还是包含 configmap 信息的清单?或者您可能指的是安装在部署的 pod 上的 configMap?

标签: kubernetes ansible


【解决方案1】:

了解问题的最简单方法是检查 playbook 的当前目录。比较当前目录和保存文件的目录。它们不一样。获取当前目录:

- shell: "pwd"
  register: result
- debug:
    var: result

使用 configmap.yml 的绝对路径在主机上创建/使用文件更容易,例如:

vars:
  configmap: "/root/configmap.yml"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多