Puppet

Puppet

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2019 Dec 17 8:10
Editor
Edited
Edited
2023 Apr 23 17:41
Refs
Refs

Master - Agent

puppet chocolate
puppet powershell
relay by puppet

What is puppet

  • by IT자동화 소프트웨어업체 '퍼펫랩스(Puppet Labs)'
os 무관하게 시스템 구성 언어로 각 사용자, 서비스, 패키지를 관리하는 모델기반의 IT자동화 도구
can get by apt apache 연관. 퍼펫으로 인프라에 필수패키지를 자동적으로 설치한 뒤 연관 서비스를 시작하고 관리자가 의도한 상태로 통제할 수 있다. 구글은 서비스운영단을 제외한 사내 모든 리눅스 및 맥OS 기반 데스크톱, 노트북, 서버 인프라를 퍼펫으로 관리한다. 이밖에 트위터, 징가, 델, 뉴욕증권거래소 등이 사용중이다.
 
 

Puppet basic operation

▷ Puppet은 하나의 Master 서버에서 설정(아파치 설정, WAS 기동 등..)을 하면 각 Agent에게 설정 정보를 보냅니다.
(이러한 명령을 "catalog" 라고 합니다.)
▷ 이를 수신한 Agent는 변경된 설정 정보를 실행하고, 결과 리포트는 Master에게 전송 합니다.
notion image
 

Puppet element & definition

▷ agent nodes, : Puppet에 의해서 관리되는 가상 혹은 물리 서버.
▷ puppet master server, : Agent Node를 관리하는 서버.
▷ console server : Site 관리를 위해서 Agent를 분석 관리하는 서버 (Master 서버에서 이 역할을 할 수도 있다.)
▷ database support server : PuppetDB와 데이타베이스들이 동작하는 Console 지원 서버 (Master 서버에서 이 역할을 할 수도 있다.)
▷ Manifest : Puppet를 통해 설정하고자 하는 환경에 대한 정의. 자원에 대한 기술 명세서.
▷ 자 원 : 사용자, 파일, S/W 등의 Puppet 관리 대상 , Manifest 만드는 것은 자원을 선언하는 것으로 볼 수 있다.
File / User / Group / Host / Package / Service 등등
▷ Catalog  : Puppet Master에서 Agent에게 내리는 명령
 
 

Puppet daemon process

▷ puppetmasterd : Puppet의 관리서버에서 실행
▷ puppetd : Puppet의 관리서버에서 적용받는 각 서버에서 실행, * 정기적으로(Default 30분) puppetmasterd에 요청하여 받은 결과값을 현재 설정과 비교하여 수정된 부분은 반영하도록 한다. 이 때의 설정 파일은 puppetmasterd에서 다운로드 되어 처리. 또한 정기적으로 반영되는 것 이외에 수동으로 직접 puppetmasterd에서 내릴 수도 있다. (puppetrun)  ※ puppetmasterd와 puppetd 간의 통신은 SSL을 통해서 이뤄진다.
 
 

Attributes

▷ 기존에 정의된 Manifest에 의해서 현재 설정과 Manifest와 비교하여 변경된 부분에 대해서(혹은 초기 구동 시)
필요한 부분에 대해서 각 환경에 맞춰서 자동으로 환경을 구성함.
▷ 하나의 Manifest로 다수의 장치에 대해서 동일한 작업을 수행하고 서로 동일한 환경을 구성할 수 있다.
▷ 다수의 수작업이 필요한 환경 구성 및 업데이트 등의 작업을 Manifest 관리만을 통해서 자동화 할 수 있으며,
개별 작업으로 발생할 수 있는 오류 발생 가능성을 없애준다.
▷ 다양한 OS를 지원하기 때문에 운영 환경에 상관없이 동일하게 사용할 수 있다. (일부는 Agent만 지원)
 
 
 
 
 
 

Recommendations