[1. 개요]
Ansible 로 각 서버들에 대해 작업을 진행 중, 특정 작업이 실패하는 경우
작업자에게 노티 하는 부분이 필요하다.
일종의 try ~ catch ~ finally 같은 것이 playbook 작성 시 필요한 것이다.
[2. block ~ rescue]
block 은 task 들의 논리적인 group 을 만든다.
block ~ rescue / always 는 하나의 task 단위로 관리 한다.
tasks
- name: sample
block:
# 여기에 일련의 작업들을 배열 형태로 기술
# 작업이 실패 할 경우, recuse 로 점프 한다.
rescue:
# 여기에서 예외 처리 등을 해준다.
# 보통, 진행 하던 playbook 전체를 종료 시켜주는 것이 좋다
# meta: end_play 를 이용하면 작업 전체를 종료 시킬 수 있다.
always:
# 여기에는 항상 실행되어야 하는 작업을 작성한다.
[3. meta]
ansible 내부 실행 또는 상태에 영향을 주는 특별한 task 이다.
playbook 어디에서나 실행 될 수 있다.
window 서버를 대상으로도 지원 된다.
- end_play: 모든 host 들에 영향을 줌, playbook 을 실패 없이 종료한다.
- end_host: 실패 없이, 현재 host 에 대한 playbook 을 종료한다.
- reset_connection: ssh 같은 연결을 끊는다.
- ...
[3. 공식 문서]
- https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_blocks.html
- https://docs.ansible.com/ansible/latest/collections/ansible/builtin/meta_module.html
- zz
'Ansible' 카테고리의 다른 글
Ansible - fetch vs copy & synchronize (0) | 2023.01.07 |
---|---|
Ansible 설치 및 기본 개념 (0) | 2023.01.02 |