[Ansible] 플레이 레벨에서 작업 실행 순서DevOps/Ansible2022. 4. 21. 09:34
Table of Contents
728x90
✔️ 플레이 레벨에서 작업 실행 순서
어떤 역할을 수행하기 전에 어떤 작업을 수행해야 한다고 하면 pre_tasks
역할을 수행한 이후에는 tasks
또는 post_tasks
로 정의할 수 있다.
참고로 tasks
없이 pre_tasks
만 사용할 수도 있다.
# play
- hosts: # 작업을 위한 관리 노드
pre_tasks:
roles:
tasks: # 관리노드가 실행할 작업을 tasks 또는 roles에 정의
post_tasks:
어떤 순서로 선언하던 아래 순서대로 실행이 된다.pre_tasks
→ roles
→ tasks
→ post_tasks
예시
sample/site.yaml
- hosts: 192.168.100.12
become: yes
pre_tasks:
- debug:
msg: Pre Tasks
roles:
- web
tasks:
- debug:
msg: Tasks
post_tasks:
- debug:
msg: Post Tasks
실행 결과
[vagrant@controller sample]$ ansible-playbook site.yaml
PLAY [192.168.100.12] ***********************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12]
TASK [debug] ********************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12] => {
"msg": "Pre Tasks"
}
TASK [web : yum] ****************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12]
TASK [web : replace] ************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12]
TASK [web : template] ***********************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12]
TASK [web : copy] ***************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12]
TASK [web : service] ************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12]
TASK [debug] ********************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12] => {
"msg": "Tasks"
}
TASK [debug] ********************************************************************************************************************************************************************************************************************************************************
ok: [192.168.100.12] => {
"msg": "Post Tasks"
}
PLAY RECAP **********************************************************************************************************************************************************************************************************************************************************
192.168.100.12 : ok=9 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
역할을 수행하기 전에 작업을 해야한다던지 역할을 수행하고 뭔가 간단한 작업을 해야할 때
pre, post tasks를 사용할 수 있다.
pre, post tasks를 사용하기 싫으면 역할을 만들면 된다.
하지만 아주 간단한 작업인데 굳이 복잡하게 역할을 만들 필요가 있는가에 대해 생각해야 된다.
추가적으로 핸들러의 실행은 모든 작업이 끝나고 실행되는 것이 아니라
각 작업이 끝날 때마다 핸들러가 실행된다.pre_tasks
→ pre_tasks's handler
→ roles
→ tasks
→ tasks's handler
→ post_tasks
→ post_tasks's handler
728x90
'DevOps > Ansible' 카테고리의 다른 글
[Ansible] vault (플레이북의 암호화) (0) | 2022.04.21 |
---|---|
[Ansible] ansible-galaxy 사용법 (0) | 2022.04.21 |
[Ansible] artifact 재사용 - 역할(roles) (0) | 2022.04.21 |
[Ansible] artifact 재사용 - 파일 재사용 (2) (0) | 2022.04.20 |
[Ansible] artifact 재사용 - 파일 재사용 (1) (0) | 2022.04.20 |
@TTOII :: 뭉게뭉게 클라우드
영차영차 성장 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!