[Ansible] Playbook (플레이북) 이란?

2023. 2. 28. 11:06·Cloud Engineering/Ansible
목차
  1. Playbook 이란
  2. Playbook 의 구성 
  3. Playbook 파일 작성하기 
  4.  
  5. Playbook 실행하기 
  6. 실행 전 YAML 문법 체크
  7. Playbook 실행 
728x90

 

Playbook 이란

여러 호스트들을 대상으로 반복해야 하는 작업, 재사용이 필요한 작업, 구성 관리 등이 필요할 때 Playbook을 정의해서 사용할 수 있다.

Playbook 은 멱등성이라는 특징을 가진다. 멱등성이란 Ansible이 작업을 할 때 작업 상태가 원하는 최종 상태로 만들어진 경우 작업을 더 이상 반복하지 않는 특성이다. 그러나 멱등성이 적용되지 않는 몇몇 모듈들이 존재한다. 

멱등성 예외 모듈 : command, shell, raw 같은 명령 모듈 또는 service 재시작 모듈은 해당하지 않는다.

 

Playbook 의 구성 

  • Playbook  : 하나 이상의 Play를 가진다. 
  • Play: 하나 이상의 Task로 이루어져있다. 
  • Task : 하나의 Module과 Module의 옵션 및 arugment 포함한다. 

즉, 플레이북은 여러 플레이를 정의하여 다중 작업을 처리하는데 사용될 수 있다. 

 

Playbook 파일 작성하기 

playbook 은 yaml 파일로 정의한다. yaml 은 쉽게 이해하자면 JSON 형식처럼 데이터를 정의하는데 쓰이는 언어이다. 

hosts 와 tasks 항목은 반드시 들어가야 한다.

test-playbook.yaml 예시 

- name: test-play1
  hosts: ansi-node1
  gather_facts: no
  tasks:
  - name: test-task1
    debug:
      msg: "hello ansible ansi-node1"
- name: test-play2
  hosts: ansi-node2
  gather_facts: yes
  tasks:
  - name: test-task2
    debug:
      msg: "hello ansible ansi-node2"

 

Playbook 실행하기 

실행 전 YAML 문법 체크

$ ansible-playbook FILENAME --syntax-check

 

시뮬레이션을 해볼 수 있다. 그러나 주의할점은 순차적으로 작업되어야 하는 경우 play들이 올바르게 정의되었음에도 불구하고 에러가 날 수 있다. 따라서 check 명령어를 100% 믿고 의존하면 안된다

ansible-playbook FILENAME --check

 

 

Playbook 실행 

ansible-playbook FILENAME

-v 옵션을 지정하여 각 작업마다 자세한 실행내용을 확인할 수 있다. 

$ ansible-playbook intranet.yaml -v
728x90

'Cloud Engineering > Ansible' 카테고리의 다른 글

[Ansible] Fact (팩트 변수) 란?  (0) 2023.03.02
[Ansible] Playbook 변수 사용하기 / vars_prompt / filter (필터) / lookup (조회)  (0) 2023.02.28
[Ansible] Ansible 설정 파일 ansible.cfg  (0) 2023.02.27
[Ansible] Ad-Hoc 명령  (0) 2023.02.27
[Ansible] Inventory (인벤토리) 란? (1) - 정적 인벤토리  (0) 2023.02.27
  1. Playbook 이란
  2. Playbook 의 구성 
  3. Playbook 파일 작성하기 
  4.  
  5. Playbook 실행하기 
  6. 실행 전 YAML 문법 체크
  7. Playbook 실행 
'Cloud Engineering/Ansible' 카테고리의 다른 글
  • [Ansible] Fact (팩트 변수) 란?
  • [Ansible] Playbook 변수 사용하기 / vars_prompt / filter (필터) / lookup (조회)
  • [Ansible] Ansible 설정 파일 ansible.cfg
  • [Ansible] Ad-Hoc 명령
minjiwoo
minjiwoo
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minjiwoo
minji's engineering note
minjiwoo
전체
오늘
어제
  • 분류 전체보기 (613)
    • Data Engineering (42)
      • Apache Spark (11)
      • Databricks & Delta Lake (9)
      • Airflow (3)
      • SQL (6)
      • Trouble Shooting (2)
      • Hadoop (2)
      • MLOps (1)
    • Cloud Engineering (104)
      • AWS (23)
      • Linux 🐧 (29)
      • Docker 🐳 (21)
      • Kubernetes ⚙️ (20)
      • Ansible (10)
    • Computer Science (87)
      • 네트워크 (9)
      • 운영체제 (25)
      • 정보처리기사 (48)
      • CS 기술 면접 스터디 (3)
    • Programming Languages (27)
      • Python (17)
      • C와 C++ (10)
    • Backend (5)
      • Django (2)
    • 프로젝트 (2)
      • 테크포임팩트 (2)
    • iOS (11)
      • 레이블러리 (2)
    • Algorithm (PS) (275)
      • LeetCode (6)
    • 개발일기 (30)
      • 내돈내산 후기🎮 (3)
      • 개발자 취준생 (5)
      • Today I Learned (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Hi there

인기 글

태그

  • 알고리즘
  • 데이터브릭스
  • 빅데이터
  • python
  • Kubernetes
  • 쿠버네티스
  • SPARK
  • 리눅스
  • dfs
  • 카카오코딩테스트
  • 백트래킹
  • 파이썬
  • Swift
  • 데이터엔지니어
  • 코딩테스트
  • Databricks
  • docker
  • BFS
  • EC2
  • 데이터엔지니어링
  • 백준
  • Leetcode
  • 운영체제
  • 클라우드
  • ansible
  • linux
  • 스파크
  • 프로그래머스
  • dp
  • AWS

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
minjiwoo
[Ansible] Playbook (플레이북) 이란?
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.