![Ansible failed_when은 사용자 정의 오류 메시지만 인쇄합니다.](https://linux55.com/image/66621/Ansible%20failed_when%EC%9D%80%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EC%A0%95%EC%9D%98%20%EC%98%A4%EB%A5%98%20%EB%A9%94%EC%8B%9C%EC%A7%80%EB%A7%8C%20%EC%9D%B8%EC%87%84%ED%95%A9%EB%8B%88%EB%8B%A4..png)
저는 혼합 배포 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
이면 충분하며 조건 평가 메시지가 표시되지 않습니다.