Endless Motivation

[Ansible Playbook] 프로젝트 구조 설명 본문

IT/OS & Infra

[Ansible Playbook] 프로젝트 구조 설명

Renesys 2022. 4. 24. 20:46

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