Ansible failed_whenはカスタムエラーメッセージのみを出力します。

Ansible failed_whenはカスタムエラーメッセージのみを出力します。

私は混合配布Linuxボックスでうるう秒検出器を実行するAnsibleための簡単なスクリプトを書いています。RHEL

これはスクリプトです

---
- hosts: Linux
  vars_files:
    - ../group_vars/Linux.yml

  tasks:

    - name: Running RHEL leap second detector (will skip if distirubtion is not RHEL)
      when: ansible_distribution == "RedHat"
      script: ../scripts/leap_vulnerability.sh
      register: result
      changed_when: false

    - name: RHEL Lead second detector result
      when: ansible_distribution == "RedHat"
      fail: msg="Kernel {{ansible_kernel}} is vulnerable"
      failed_when: "'kernel is vulnerable' in result.stdout"

うまくいきます。以下は出力の例です。

TASK: [Running RHEL leap second detector (will skip if distirubtion is not RHEL)] ***
skipping: [UTIL02]
skipping: [UTIL01]
ok: [SERV01]
ok: [SERV02]

TASK: [RHEL Lead second detector result] **************************************
skipping: [UTIL02]
skipping: [UTIL01]
failed: [SERV01] => {"failed": true, "failed_when_result": true}
msg: Kernel 2.6.18-53.el5 is vulnerable
failed: [SERV02] => {"failed": true, "failed_when_result": true}
msg: Kernel 2.6.18-53.el5 is vulnerable

PLAY RECAP ********************************************************************

UTIL01            : ok=1    changed=0    unreachable=0    failed=0
UTIL02            : ok=1    changed=0    unreachable=0    failed=0
SERV01            : ok=2    changed=0    unreachable=0    failed=1
SERV02            : ok=2    changed=0    unreachable=0    failed=1

ご覧のとおり、私があまり望んでいない追加のメッセージ行があります。

failed: [SERV01] => {"failed": true, "failed_when_result": true}

条件評価メッセージを出力せずに、定義したエラーメッセージのみを出力できますか?次のようなもの

failed: Kernel 2.6.18-53.el5 is vulnerable

ベストアンサー1

一般出力を変更する方法はないようですansible-playbook。ただし、以下を使用して追加の出力を生成できます。コールバックプラグイン

にリダイレクトして独自の出力を得るためのプラグインを作成することもできます/dev/null

おすすめ記事