[IaC] 03. Configuration 도구 (1) - Puppet
카테고리: IAC
태그: iac
[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 작업 흐름

관리자는 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를 보낸다. |
댓글 남기기