Ansible 是否未正确传递标准输出?

Ansible 是否未正确传递标准输出?,ansible,Ansible,奇怪的问题。由于某些原因,无法正确识别标准输出中的值。我正在尝试做的是grep正在侦听的端口的值,并尝试匹配。如果定义的端口存在(即,正在侦听一条消息,如果不存在,则生成另一条消息) 以下是输出: TASK [kafkanodes : check_prometheus_status_kafka] *****************************************************************************************************

奇怪的问题。由于某些原因,无法正确识别标准输出中的值。我正在尝试做的是grep正在侦听的端口的值,并尝试匹配。如果定义的端口存在(即,正在侦听一条消息,如果不存在,则生成另一条消息)

以下是输出:

TASK [kafkanodes : check_prometheus_status_kafka] **********************************************************************************************************
changed: [mifid-cnj-prod-k1.bnymellon.net]

TASK [kafkanodes : debug] **********************************************************************************************************************************
ok: [mifid-cnj-prod-k1.bnymellon.net] => {
    "prom_status.stdout": "9071"
}

TASK [kafkanodes : post_message_prom_kafka] ****************************************************************************************************************
ok: [mifid-cnj-prod-k1.bnymellon.net] => {
    "msg": "Prometheus for Kafka NOT listening on 9071 - Current Listen value is 9071"
}
如您所见,Ansible正在报告端口未被监听,而上一个任务明确告诉我端口正在“
9071
”上被监听(以及从
prom\u状态获取值的当前任务。stdout
显示端口值)

现在,如果我替换这一行:

debug: msg="Prometheus for Kafka {{  (kafka_prom_port == prom_status.stdout) | ternary ('', 'NOT') }} listening on {{ kafka_prom_port }} - Current Listen value is {{ prom_status.stdout }}"
……关于这一点:

debug: msg="Prometheus for Kafka {{  (kafka_prom_port == 9071) | ternary ('', 'NOT') }} listening on {{ kafka_prom_port }} - Current Listen value is {{ prom_status.stdout }}"
…它起作用了。我在这里错过了什么

再次感谢你的帮助


Alex

强制将
stdout
字符串转换为数字:
(kafka_prom_port==prom_status.stdout | int)

Spasibo Kostya!!
debug: msg="Prometheus for Kafka {{  (kafka_prom_port == 9071) | ternary ('', 'NOT') }} listening on {{ kafka_prom_port }} - Current Listen value is {{ prom_status.stdout }}"