posted by 귀염둥이채원 2019. 2. 1. 15:53

# Handlers: Running Operations On Change

- task의 맨 뒤에 notify action 설정(handler의 이름으로 호출)

- 여러 번 조건을 만족해도 단 한번만 실행됨

- handler는 특별한 task의 list이며 이름으로 참조됨

- 대개 service restart 등에 쓰임


handler는 변경이 있을 때 작업을 수행하는 것이다.

'notify' action은 play의 각 task들이 끝날때 시작된다.

여러 작업으로 알림을 받더라도 한번만 트리거된다.


예를 들어, apche의 여러 설정 파일들이 변경된 경우 apache를 재시작해야합니다.

apache는 불필요한 재시작을 피해기 위한 한번만 재시작합니다.


다음은 /etc/foo.conf 파일이 변경된 경우,

memchched, apache를 재기동하는 예제입니다.

- name: template configuration file

  template:

    src: template.j2

    dest: /etc/foo.conf

  notify:

     - restart memcached

     - restart apache 



notify task 섹션에 나열된 항목을 핸들러라고합니다.

# example handlers section 

handlers:

    - name: restart memcached

      service:

        name: memcached

        state: restarted

    - name: restart apache

      service:

        name: apache

        state: restarted 


# 참고 사이트

https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html

https://moonstrike.github.io/ansible/2016/09/22/Ansible-Playbooks.html

'Tool > ansible' 카테고리의 다른 글

ansible에서 문자열 split 방법  (0) 2019.03.18
ansible role template 생성하기  (0) 2019.02.01
serial keyword를 이용한 rolling update  (0) 2019.01.29
ansible-vault를 이용한 암호화  (0) 2019.01.29
ansible source build  (0) 2019.01.29