운영 Ansible - 생성한 플레이북 및 변수 재사용
페이지 정보
본문
1. 개요
플레이북 및 변수를 재사용한다는 것은 다른 Ansible 파일을 참조하여 작업한다는 것입니다.
아래와 같은 예시가 있습니다.
- 상황
- 기존 Playbook - HTTPD, MYSQL 패키지 설치
- 작업 중인 Playbook - HTTPD, MYSQL 패키지 확인
- 흐름
- 패키지를 확인 후 패키지가 존재하지 않을 경우 패키지 설치
- 작업
- 작업 중인 Playbook에 기존 Playbook과 같은 내용을 재작성하는 것이 아닌 참조 기능을 사용하여 기존 Playbook 작업을 재사용
2. 재사용 가능한 기능
Ansible은 아래와 같이 4가지로 분류할 수 있습니다
- vars 파일 - 변수가 정의되어있는 파일
- task 파일 - 작업에 대한 내용이 정의되어있는 파일
- Playbook 파일 - 변수 또는 작업 및 기타 내용들이 정의되어 있는 파일
- Role - 관련 작업, 변수, 기본값 및 기타 플러그인의 디렉토리
3. 재사용 방법
Ansible은 플레이북 및 변수 등을 재사용 할 때 2가지의 방법으로 재사용이 가능합니다
- 정적 - import 지시자 사용
- 동적 - include 지시자 사용
import 지시자는 Playbook 실행 시 모든 import 한 파일의 구문 또는 내용을 분석하게 됩니다.
오류 발생 시 처음에 Playbook 실행을 멈추게 됩니다.
include 지시자는 Playbook 실행 후 include 지시자를 실행하는 작업에 도달할 경우 구문 또는 내용을 분석하게 됩니다.
오류 발생 시 include 지시자를 정의한 부분에서 Playbook 실행을 멈추게 됩니다.
4. 정리
Include | Import | |
재사용 유형 | 동적 방식 | 정적 방식 |
처리 방법 | 작업 실행 시 | Playbook 파싱 중 전처리시 |
tasks 포함 여부 | O (Include 방식은 모두 하나의 task 입니다.) |
X (Import 방식은 Playbook 방식이므로 하나 이상의 task 입니다.) |
작업 옵션 | Include 된 파일 안에 또 다른 재사용 작업은 존재하면 안됨. | Import 안에 또 다른 재사용 작업이 존재하더라도 사용 가능 |
반복문 사용 여부 | O | X |
tags 목록 확인 여부 | X | O |
작업 목록 확인 여부 | X | O |
핸들러 상세 요청 전달 가능 여부 | X (Handler 작업 전체만 호출 가능) | O (Handler 작업 중 특정 작업만 따로 호출 가능) |
특정 작업부터 실행 가능 여부 | X | O |
인벤토리 변수 사용 여부 | O | X |
Playbook 자체를 재사용 가능 여부 | X ( | O |
변수 파일 사용 | O (Handler와 마찬가지로 변수 파일 전체를 호출 가능) | O (Handler와 마찬가지로 변수 파일 중 특정 변수만 따로 호출 가능) |
관련링크
- 이전글Ansible - Adhoc 21.12.19
- 다음글Ansible - Windows 원격 관리(기본 방식) 21.12.13
댓글목록
최고관리자님의 댓글
최고관리자 작성일좋은글 감사합니다. ^^