基于任务结果的Ansible消息输出

基于任务结果的Ansible消息输出,ansible,Ansible,在Ansible中是否可以根据任务的结果显示不同的消息 比如说 - name: check_prometheus_status_kafka shell: /usr/sbin/ss -lnt|awk '{ print $4}'|grep 9071 |sed 's/\*//'| sed 's/\://' register: prom_status tags: - check_prometheus_status_kafka - name: post_mess

在Ansible中是否可以根据任务的结果显示不同的消息

比如说

 - name: check_prometheus_status_kafka
    shell: /usr/sbin/ss -lnt|awk '{ print $4}'|grep 9071 |sed 's/\*//'| sed 's/\://'
    register: prom_status
    tags:
      - check_prometheus_status_kafka

  - name: post_message_prom_kafka
    debug: msg="Prometheus for Kafka listening in {{ prom_status.stdout }}"
    when: prom_status.stdout == "9071"
    tags:
      - post_message_prom_kafka

我想要的是一条额外的信息,它会输出类似于《卡夫卡的普罗米修斯不在监听端口{{prom_status.stdout}}你的问题不是很清楚,但这里有一些东西供你考虑(发挥
实际端口
的价值):


对不起,我不清楚。我想要完成的是提供一条消息,而不管结果如何,但消息必须基于任务结果进行编译。例如,如果作业成功,我想说“successful”,如果作业失败,我想发布消息“FAILED”,就像“else”子句一样。还有什么还不清楚?非常感谢@techraf!!我需要这个解决方案:你能解释一下你代码中的每一项,比如什么是三元的吗?我的问题是
---
- hosts: localhost
  vars:
    port_to_listen_on: "9071"
    actual_port: "9071"
  tasks:
    - debug:
        msg: "Prometheus for Kafka {{ (actual_port == port_to_listen_on) | ternary ('', 'NOT ') }}listening in {{ port_to_listen_on }}"

    # or

     - debug:
         msg: "Prometheus for Kafka {{ 'NOT ' if (actual_port != port_to_listen_on) else '' }}listening in {{ port_to_listen_on }}"