본문 바로가기

DevOps/Automation

Puppet Part 3

Today key : Puppet, 퍼펫, manifest, autumation, 자동화, Architecture, 아키텍처, Catalog, 카탈로그, facts 

 

지난 번에 이은, Puppet의 3번째 포스팅입니다.

이번 포스팅은 Puppet을 조금 더 이해하기 위한 간단한 아키텍처와 동작 방식에 대한 내용입니다.

우선 짧지만, 정리하는 데로 추가로 올리거나 업데이트 할 예정입니다.

혹시 잘못되거나 수정해야 할 부분이 있으면 덧글 부탁드립니다! ^^

 


 

 

Puppet Part 3

 

Puppet Architecture 일반

   • Puppet 일반적은 master/agent(혹은 Server/Client) 구조의 Puppet Master Puppet Agent 사용.

   • Puppet Apply Application 통한 self-contained(Standalone) 구조로도 실행 가능.

 

Puppet 통한 Node 관리를 위한 2개의 Main Stage

   • Catalog 컴파일

   • Catalog 적용

 

Master/Agent 구조에서의 기본 동작

   • Agent에서는 Puppet Agent App Background 서비스 처럼 동작하고 하나 이상의 Puppet master App

       동작하는 Puppet Server 동작.

   •Agent 주기적으로(Default 30) Master에게 자신의 facts 전송하고, Catalog 요청

   •Master Catalog 생성을 위해서 컴파일 후에 Node에게 Catalog 전송

   •Agent Catalog 수신 받아서, catalog 정의된 내용과 현재의 Resource 비교하여 Catalog 내용을 적용.

   • Catalog 적용 , Agent Report Master 전송

 

 

 

 

Standalone 구조에서의 기본 동작

   •Puppet Apply 통해서 노드를 관리

   일반적으로 예약된 작업(Scheduled task)혹은 Cron Job으로 수행.

   •Master/Agent 구조와 마찬가지로 Puppet 노드 관리를 수행하기 위해서 컴파일 과정을 거치게 .

   컴파일 Catalog 통해서 Resouce들을 Catalog 내용대로 적용.

   •Catalog 적용 , Report Disk 저장

 

 


Catalog

관리하는 자원에 대해서 자원에 대해 원하는 상태(Desired state) 기술

특정 순서로 관리를 해야 하는 경우에, 리소스에 설정에 대한 종속성 정보를 제공 가능.

 노드를 설정할 (configuring), Puppet agent catalog라고 부르는 Master 서버로부터 전송 받은 document 사용.

  

Catalog Compile

• Puppet 3가지의 설정 정보의 main-sources 사용하여 catalog 컴파일 .

    Agent-provided data

        - agent catalog 받기 위해서 master에게 자신의 정보를 전송할 아래의 4가지 정보를 전송.

           1. name.  (일반적으로 certname 같다.)                     2. certficate

           3. facts                                                                                      4. environment

   External data

   Puppet manifests

        - main manifests Modules ( Puppet Forge 부터 다운, 사이트에서 직접 작성)

 

FACTS

catalog 요청 전에 Facter 사용하여 시스템의 정보를 수집.

puppet 이렇게 수집된 정보를 facts 정보라 하고, 이것은 manifest에서 사용 pre-set variables 사용.

 .