[IaC] 03. Configuration 도구 (1) - Puppet

Date:     Updated:

카테고리:

태그:

[IaC] 03. Configuration 도구 (1) - Puppet


🔔 Puppet이란?

  • Puppet은 Ruby로 만들어진 Configuration 도구로, Puppet은 각 서버에서 실행되는 puppetd와 관리 서버에서 실행되는 puppetmasterd 2가지 데몬에 의해 작동된다.

  • 각 서버의 puppetd는 정기적(Default 30분)으로 puppetmasterd에 질의를 통해 얻은 정의 파일을 현재 상황과 비교하여 반영해야 할 것이 있으면 반영한다.

  • 이 때, 설정 파일(매니페스트)은 puppetmasterd로부터 다운로드 되며, 정기적으로 질의하는 것 뿐 아니라 수동으로 직접 puppetd를 명령어로 실행하야 설정을 확인, 반영하는 것이 가능하다.


(1) Puppet 구성 요소

구분 설명
Agent Node Puppet에 의해 관리되는 서버
Master Server Agent Node를 관리하는 서버
Manifest Puppet를 통해 설정하고자 하는 환겨에 대한 정의, 자원에 대한 기술 명세서
Catalog Puppet Master에서 Agent에게 내리는 명령


(2) Puppet 작업 흐름

img (1)

관리자는 Agent에 반영할 Manifest 작성을 완료하고, Agent가 Master와 통신할 수 있도록 보안 인증서(Secure Certificates)를 정의하고 Master의 포트를 개방하여 통신 가능하도록한다.

순서 설명
(1) Agent는 Master에게 Agent Node의 전반적인 Fact 정보(호스트명, IP 주소 등)을 보낸다.
(2-1) Puppet은 Fact 정보를 기반으로 Agent에 반영할 Catalog를 컴파일한다.
(2-2) Agent는 받은 Catalog를 기반으로 변경사항을 반영한다.
(3) Agent는 이후 Master에게 변경 결과 여부를 보고하는 Report를 보낸다.


IAC 카테고리 내 다른 글 보러가기

댓글 남기기