Puppet

오픈소스 비즈니스 컨설팅
Pnuskgh (토론 | 기여)님의 2015년 11월 4일 (수) 19:11 판
둘러보기로 가기 검색하러 가기

배포 자동화 솔루션인 puppet를 정리 합니다.

Puppet 개요

puppet-%EC%84%A4%EC%B9%981.png

Puppet 용어

용어 상세
Manifest 환경 설정 정보 파일
vim /etc/puppet/environments/production/manifests/~.pp
node "~" {
    Resource { "~":
        attr => value,
    }
​}
  • Resource : File, Service, Package, User 등
  • Class : Resource의 집합으로 modules 폴더 아래에 ~.pp 형태로 저장

puppet  apply  ~.pp      #--- local machine에서 실행, node 부분이 없음
puppet  agent  --test     #--- agent에서 실행

Catalog Manifest가 컴파일되어 Puppet Agent에서 전달되는 정보
puppetmasterd 관리 서버에서 실행되는 데몬
puppetd 각 서버에서 실행되는 데몬

Puppet 구성

puppet --version

Folder 구조

/etc/puppet/

  • manifest/
    • site.pp (이름 변경 가능)
      import '모듈명.pp'
    • 모듈명.pp (이름 변경 가능)
      node '~' {
          include 모듈명
          #--- Class, Resource, Variabled 등 포함
      }
  • modules/모듈명/
    • manifest/init.pp
      class 모듈명 {
          #--- files, settings, modules, scripts 등 포함
      }

file

file { '/tmp/zztemp.conf':
    content => '~\n",
    ensure => file,
    mode => '06400',
    owner => root,
    group => root,
​}

service

service {'nginx':
    hasrestart => true,
    hasstatus => true,
    subscribe = file ["nginx.conf"]
​}

참고 문헌