1. 요약
- import 는 정적 (Static) 이며, 플레이북 (playbook) 이 Parsing 될 때 사전에 처리되어 일찍 에러를 확인할 수 있음
- include 는 동적 (Dynamic) 으로, 플레이북 실행 중에 발생하는 대로 처리되므로 해당 task 에 도달했을때 에러를 발견할 수 있음
2. import tasks
---
# main.yml
- name: "[Jenkins] Install Jenkins"
import_tasks: jenkins.yml
- name: "[Jenkins] Set jenkins options"
import_tasks: tune.yml
복잡한 작업을 여러 Task 로 나눌수있고, Task 는 나열된 순서 대로 실행된다.
---
# main.yml
tasks:
- import_tasks: wordpress.yml
vars:
wp_user: timmy
- import_tasks: wordpress.yml
vars:
wp_user: alice
- import_tasks: wordpress.yml
vars:
wp_user: bob
- import tasks 를 사용하여 변수 처리를 할경우 위와 같이 코드가 길어지게된다.
3. include tasks
---
# main.yml
- include_tasks: loop_me.yml
loop:
- one
- two
- three
---
# loop_me.yml
- name: print stuff
debug:
msg: "stuff: {{ item }}"
- name: print other stuff
debug:
msg: "other stuff: {{ item }}"
- include_tasks 의 가장 큰 장점은 반복문 (loop) 이다.
- 위 task 에서 반복문 (loop) 가 사용됨, 반복문은 import task 로 사용할 수 없다.
- include_tasks: prerequisites_{{ ansible_os_family | lower }}.yml
- include tasks : ansible 변수를 이용하여 동적으로 처리할 수 있다.
참고
- Ansible 공식 문서
'DevOps, Infra' 카테고리의 다른 글
Lens 대신 k9s 를 사용해보자 (0) | 2023.07.09 |
---|---|
Linux 에서 정상적으로 프로세스를 중지하는 방법, Graceful Shutdown (0) | 2023.03.13 |
vagrant multi machine (multi vm) (0) | 2023.02.24 |
베이그런트 (Vagrant) Cheat Sheet (0) | 2023.01.24 |
[DevOps] Ansible 이란? (0) | 2023.01.17 |