Ansible 条件无法识别调试输出

Ansible conditional won't recognise debug output

我正在尝试将调试消息传递给有条件的 Kubernetes 对象,但它似乎无法正确识别它:

- name: get some service status log
  kubernetes.core.k8s_log:
    namespace: "{{ product.namespace }}"
    label_selectors:
    - app.kubernetes.io/name=check-service-existence
  register: service_existence

- name: some service existence check log
  debug:
    msg: "{{ service_existence.log_lines | first }}"

- name: create service for "{{ product.namespace }}"
  kubernetes.core.k8s:
    state: present
    template: create-service.j2
    wait: yes
    wait_timeout: 300
    wait_condition:
      type: "Complete"
      status: "True"
  when: service_existence  == "service_does_not_exist"

我在 运行 时得到的是:

TASK [playbook : some service existence check log] ***
ok: [127.0.0.1] => 
  msg: service_does_not_exist

TASK [playbook : create service for "namespace"] ***
skipping: [127.0.0.1]

我怀疑它将 msg: 视为字符串的一部分。我该如何正确处理?

由于您的调试消息是关于 service_existence.log_lines | first 的值,因此您的条件也应该是。

when: service_existence.log_lines | first  == "service_does_not_exist"