Endless Motivation
[Ansible Playbook] 프로젝트 구조 설명 본문
Ansible Playbook은 사실 1개의 yaml 스크립트만 작성해도 구동은 가능하지만 프로젝트의 규모가 커지면 아래와 같은 디렉토리 구조로 관리하게 된다
main.yml : 프로젝트의 최상단
/roles : 프로젝트 내 수행할 작업에 대한 sub 디렉토리
ㄴ /role_name1 : 하위 role의 이름
ㄴ /tasks : role 안에서 수행할 task들이 위치한 디렉토리
ㄴ main.yml : tasks 디렉토리 밑의 파일은 기본적으로 main.yml을 우선 참조한다.
ㄴ sub_task1.yml
ㄴ ...
ㄴ /vars : role에서 참조할 변수들을 작성하는 디렉토리
ㄴ /files : role에서 참조할 기타 파일들이 위치한 디렉토리
ㄴ /handler : task 수행 후 별도로 실행해야 하는 사항을 작성하는 디렉토리. task에서 notify로 호출
/vars : 프로젝트 전체에서 사용하는 변수. ansible-playbook에서 실행하는 경우 extra_vars로, AWX에서 실행하는 경우 variable 항목에서 지정 가능
하위 task 호출 방법
1. include 모듈을 사용하여 호출
- main playbook에서 하위 role 호출 시 include_roles을 사용
- name: execute test01
include_role:
name: varable_test
- role의 main.yml에서 하위 task를 호출할 때 include_tasks를 사용
- name: Call task01
include_tasks: sub_task01.yml
- task 안에서 변수를 호출할 때 include_vars 사용
- name: set variables
include_vars: vars/variable.yml
Comments