首页 > 解决方案 > 在 k8s_facts 模块上没有观察到输出

问题描述

团队,我的剧本没有错误,但我没有看到存储的输出。任何提示?我得到“变量未定义!” 可能是因为它没有价值。

      - name: "Get a list of all pods from any namespace"
        k8s_facts:
          kind: Pod
          kubeconfig: $WORKSPACE
          verify_ssl: no
        register: pod_list
      - debug:
          var: pod_list.stdout_lines

      - name: "Search for nodeType=gpu"
        k8s_facts:
          kubeconfig: $WORKSPACE
          kind: Node
          label_selectors:
            - nodeType=gpu
          verify_ssl: no
        register: node_list
      - debug:
          var: node_list.stdout_lines

实际输出:

ok: [target1]

TASK [3_validations_on_ssh : debug] *****************************
ok: [target1] => {
    "pod_list.stdout_lines": "VARIABLE IS NOT DEFINED!"
}

TASK [3_validations_on_ssh : Search for nodeType=gpu] ******************************************************************************************************************
ok: [target1]

TASK [3_validations_on_ssh : debug] ****************************
ok: [target1] => {
    "node_list.stdout_lines": "VARIABLE IS NOT DEFINED!"
}

预期输出:当我手动运行 kubectl 并获取它时看到的 pod 和节点列表。

标签: ansibleansible-2.xansible-facts

解决方案


虽然我没有需要的东西(即 kube install ...)在几秒钟内确认,但我认为k8s_facts模块不会返回stdout公共返回值(仅当模块有效写入 stdout 时才会出现,喜欢shellcommand)。

但是,您应该获取模块特定的返回值

要自行探索,只需直接调试已注册的 var(例如pod_list):

- debug:
    var: pod_list

推荐阅读