Ansible
Ansible Handlers
후니옹
2024. 5. 6. 02:30
- Handler 는 Task 와 똑같습니다. (Task 가 하는 모든일을 할수 있죠), 다만, 그것은 다른 Task에 의해 call 되었을 때만 실행됩니다.
- 약간 Event System 같은거라고 생각하시면 됩니다.
- Handler 는 특정 이벤트가 일어났을때 실행됩니다.
- Task 가 실행된 뒤, "두번째" 실행되어야 하는 작업이 있을때 유용
- 예를들어 어떤 새로운 서비스를 설치한뒤, Handler로 설정을 변경하고 서비스를 실행하는 작업에 유
[사용법]
# Example shows using the local machine still
# Remove 'connection' and set hosts to 'remote' for a remote connection
- hosts: local
connection: local
become: yes
become_user: root
tasks:
- name: Install Nginx
apt:
name: nginx
state: installed
update_cache: true
notify:
- Start Nginx
handlers:
- name: Start Nginx
service:
name: nginx
state: started
여기에서는 설치 Task에 "notify" 속성값을 지정하였습니다.
"Start Nginx"라는 이름을 가진 Handler 에게 Task 가 끝나는대로 알림을 보내지요.
그러면 "Start Nginx" 라는 Handler 를 만듭니다.
그리고 이 Handler 는 알림이 왔을때 "Start Nginx" Task 가 됩니다.
이 특별한 Handler 는 Service 모듈을 사용합니다.
이는 시스템 서비스들을 키고 끄고 재시작 하는 등의 액션을 할 수 있습니다.