私は混合配布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
。
答え2
failed_when
少し遅れるかもしれませんが、このモジュールを使用するときは必要ありませんfail
。一般的なwhen
もので十分であり、条件評価メッセージは表示されません。