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"
我正在尝试将调试消息传递给有条件的 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"