Ansible Handler Ignore

2026. 9. 10. 13:25·Ansible

1. Handlers 실습

playbook1.yaml - handler

---
- name: handler is running
  hosts: 192.168.63.134
  tasks:
    - name: Install httpd
      dnf:
        name: httpd
        state: present
      notify: Install mysql-server

  handlers:
    - name: Install mysql-server
      dnf:
        name: mysql-server
        state: present
  • httpd 설치 태스크가 변경(changed)되면 notify를 통해 handler 호출

 


playbook2.yaml

---
- name: Install httpd & start httpd, Install mysql-server & start mysqld
  hosts: 192.168.63.134
  tasks:
    - name: sudo dnf -y install httpd
      dnf:
        name: httpd
        state: present
      notify: start httpd

    - name: sudo dnf -y install mysql-server
      dnf:
        name: mysql-server
        state: present
      notify: start mysqld

  handlers:
    - name: start httpd
      service:
        name: httpd
        state: started
        enabled: yes

    - name: start mysqld
      service:
        name: mysqld
        state: started
        enabled: true
  • 패키지 설치(httpd, mysql-server) 후 각각의 handler를 통해 서비스 시작 및 부팅 시 자동 실행 설정(enabled)
  • 하나의 태스크가 하나의 handler를 notify하는 1:1 구조

 


playbook3.yaml - handler 2 개

---
- name: One task & two handlers
  hosts: 192.168.63.134
  tasks:
    - name: echo test
      command: /user/bin/echo test

  handlers:
    - name: restart httpd
      service:
        name: httpd
        state: restarted
  • command 모듈로 단순 echo 태스크 실행

 


 

ignore_errors

---
- name: Install notapkg
  hosts: 192.168.63.134
  tasks:
    - dnf:
        name: not a package
        state: present
      ignore_errors: yes
  • 존재하지 않는 패키지(not a package) 설치
  • ignore_errors: yes로 플레이북 실행이 중단되지 않고 진행됨

 


 

playbook2.yaml - handler + ignore_errors 조합

---
- name: handlers & ignore_errors
  hosts: 192.168.63.134
  tasks:
    - name: echo test
      command: /usr/bin/echo test
      notify: restart httpd

    - name: failed task
      dnf:
        name: notapkg
        state: present
      ignore_errors: yes

  handlers:
    - name: restart httpd
      service:
        name: httpd
        state: restarted
  • 태스크가 실패해도 이전에 notify된 handler 실행

 


 

playbook3.yaml - failed_when으로 커스텀 실패 조건 지정

---
- name: failed_when
  hosts: 192.168.63.134
  tasks:
    - name: restart httpd
      service:
        name: httpd
        state: restarted
      register: result
      failed_when: result.status.UMask=="0022"

    - name: debug result
      debug:
        var: result
  • service 모듈로 httpd 재시작 후 결과를 register: result로 저장
  • failed_when 조건식(result.status.UMask=="0022")이 참이면 태스크를 강제로 실패 처리

 

 

'Ansible' 카테고리의 다른 글

Ansible Fact  (0) 2026.09.10
Ansible Adhoc  (0) 2026.09.10
Ansible Playbook  (0) 2026.08.16
'Ansible' 카테고리의 다른 글
  • Ansible Fact
  • Ansible Adhoc
  • Ansible Playbook
돌아온무니
돌아온무니
게임 개발 육성 모험 RPG...!
  • 돌아온무니
    무니의 개발일지
    돌아온무니
  • 전체
    오늘
    어제
    • 분류 전체보기 (89)
      • C++ (16)
        • STL (3)
      • 자료구조 (3)
      • 알고리즘 (13)
        • DFS (1)
        • BFS (1)
      • 깨알 지식 (7)
        • 암호화 (4)
      • 코테 스터디 (2)
      • 운영체제 (8)
        • 공룡책 (4)
      • 악성코드 (3)
        • 스텍 프레임 변조 (3)
      • 네트워크 (2)
      • 게임수학 (8)
        • CK소프트렌더러 (4)
      • Unity (3)
        • Spine-unity (1)
      • Unreal Engine (3)
      • 웹 · 앱 (7)
      • 데이터베이스 (6)
      • Ansible (4)
      • Docker (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 최근 댓글

  • 최근 글

돌아온무니
Ansible Handler Ignore
상단으로

티스토리툴바