"Puppet"의 두 판 사이의 차이
둘러보기로 가기
검색하러 가기
잔글 |
잔글 |
||
42번째 줄: | 42번째 줄: | ||
== Puppet 설치 == | == Puppet 설치 == | ||
+ | |||
+ | === Puppet Server 설치 === | ||
+ | |||
+ | yum install puppet-server | ||
+ | |||
+ | vi /etc/puppet/puppet.conf | ||
+ | <pre>module=/etc/puppet/modules | ||
+ | certname=puppetserver.jopenbusiness.com</pre> | ||
+ | puppet resource package puppet-server ensure=latest | ||
+ | |||
+ | /etc/init.d/puppetmaster start | ||
+ | |||
+ | netstat -antp | grep LISTEN | grep 8140 | ||
+ | |||
+ | <span style="color:#006400;">'''Puppet Agent 인증'''</span> | ||
+ | |||
+ | puppet cert --sign --list | ||
+ | |||
+ | === Puppet Agent 설치 === | ||
yum install puppet | yum install puppet | ||
+ | |||
+ | vi /etc/puppet/puppet.conf | ||
+ | <pre>certname=puppetagent001.jopenbusiness.com | ||
+ | runinterval=60 #--- 초단위</pre> | ||
+ | vi /etc/sysconfig/puppet | ||
+ | |||
+ | PUPPET_SERVER=puppetserver.jopenbusiness.com<br/>PUPPET_LOG=/var/log/puppet/puppet.log | ||
+ | |||
+ | /etc/init.d/puppet start | ||
+ | |||
+ | ps -ef | grep puppet | ||
== Puppet 구성 == | == Puppet 구성 == |
2015년 11월 6일 (금) 09:20 판
배포 자동화 솔루션인 puppet를 정리 합니다.
- 홈페이지 : http://www.puppetlabs.com/, http://puppetlabs.com/puppet/puppet-open-source/, https://github.com/puppetlabs, http://forge.puppetlabs.com/
- 다운로드 :
- 라이선스 : Apache 2.0
- 플랫폼 : Ruby
목차
Puppet 개요
Puppet 용어
용어 | 상세 |
Manifest | 환경 설정 정보 파일 vim /etc/puppet/environments/production/manifests/~.pp node "~" { Resource { "~": attr => value, } }
puppet apply ~.pp #--- local machine에서 실행, node 부분이 없음 |
Catalog | Manifest가 컴파일되어 Puppet Agent에서 전달되는 정보 |
puppetmasterd | 관리 서버에서 실행되는 데몬 |
puppetd | 각 서버에서 실행되는 데몬 |
Puppet 설치
Puppet Server 설치
yum install puppet-server
vi /etc/puppet/puppet.conf
module=/etc/puppet/modules certname=puppetserver.jopenbusiness.com
puppet resource package puppet-server ensure=latest
/etc/init.d/puppetmaster start
netstat -antp | grep LISTEN | grep 8140
Puppet Agent 인증
puppet cert --sign --list
Puppet Agent 설치
yum install puppet
vi /etc/puppet/puppet.conf
certname=puppetagent001.jopenbusiness.com runinterval=60 #--- 초단위
vi /etc/sysconfig/puppet
PUPPET_SERVER=puppetserver.jopenbusiness.com
PUPPET_LOG=/var/log/puppet/puppet.log
/etc/init.d/puppet start
ps -ef | grep puppet
Puppet 구성
puppet --version
puppet apply /etc/puppet/manifests/site.pp
puppet apply /etc/puppet/manifests/site.pp --modulepath=/etc/puppet/modules
Folder 구조
/etc/puppet/
- manifest/
- site.pp (이름 변경 가능)
import 'nodes.pp' - nodes.pp (이름 변경 가능)
node '~' {
include 모듈명
#--- Class, Resource, Variabled 등 포함
}
- site.pp (이름 변경 가능)
- modules/모듈명/
- manifest/init.pp
class 모듈명 {
#--- files, settings, modules, scripts 등 포함
}
- manifest/init.pp
package
package { 'nginx': ensure => installed, #--- installed. 설치, absent. 삭제, latest. 업데이트, '버전명'. 해당 버전 설치 }
file
file { '/tmp/nginx.conf': #--- nginx(모듈명)/files/default.conf 파일 사용 source => 'puppet:///modules/nginx/default.conf', notify => Service['nginx'], #--- 다른 자원 호출 content => '~\n", ensure => file, mode => '06400', owner => root, group => root, }
service
service {'nginx': ensure => running, require => Package['nginx'], #--- 먼저 필요한 자원 hasrestart => true, hasstatus => true, subscribe = file ["nginx.conf"], }
exec
cron
user
user { 'user01': ensuer => present, comment => '~', home => '/home/user01', managehome => true, }
ssh_authorized_key
ssh_authorized_key { 'user001_ssh': user => 'user01', type => 'rsa', key => '~', }
참고 문헌
- http://wiki.tunelinux.pe.kr/pages/viewpage.action?pageId=2588702
- http://theplmingspace.tistory.com/791
- Chef : http://www.opscode.com/chef/
- Capistrano : https://github.com/capistrano/capistrano/wiki