posted by 은이종 2013. 4. 30. 17:49

1. 설정시 참고 사이트

http://wiki.tunelinux.pe.kr/pages/viewpage.action?pageId=884888

 

2.. apache, Passenger 연동하기

Passenger 는 Apacche 2.x 확장기능으로 Apache 에서 Rails 나 Rack applicaiton 을 실행할 수 있다.

Puppet (>0.24.6) now ships with a Rack application which can embed a puppetmaster. Puppet (>0.24.6) 은 이제 puppetmaster 를 내장할 수 있는 Rack applicaiton 이 포함되어 있다.

 

(1) passenger 설치 (참고 http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger)

puppetmaster 서버의 puppet.conf 설정에 아래 내용 추가

[puppetmasterd]

ssl_client_header = SSL_CLIENT_S_DN

ssl_client_verify_header = SSL_CLIENT_VERIFY

 

(2) Apache2, Rack and Passenger 설치
yum install httpd httpd-devel ruby-devel rubygems

gem install -v 1.1.0 rack

gem install passenger

설치시 아래와 같이 Error 발생시

yum install ruby-devel 실행 후 update 진행.

추가적으로 apache에 필요한 라이브러리를 설치한다.

yum install curl-devel openssl-devel zlib-devel 


passenger-install-apache2-module


Mod_SSL 설치

yum install mod_ssl

   

설치 후 다음의 내용을 apache 설정에 추가하라고 나온다.

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11
PassengerRuby /usr/bin/ruby

 

cp /usr/share/puppet/ext/rack/files/apache2.conf /etc/httpd/conf.d/puppetmaster.conf

vi /etc/httpd/conf.d/puppetmaster.conf

/etc/httpd/conf.d/puppetmaster.conf 설정은 해당 모듈을 로딩하도록 하고 문서를 참고하여 몇가지 옵션을 튜닝하였음. 도메인 이름을 puppet master 서버로 설정함.
port 는 puppet 의 기본 포트인 8140 으로 설정을 하였음.

# cat /etc/httpd/conf.d/puppetmaster.conf

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.19/ext/apache2/mod_passenger.so

PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11

PassengerRuby /usr/bin/ruby

# tuning passenger setting

# http://projects.puppetlabs.com/projects/puppet/wiki/Using_Passenger

PassengerMaxRequests 10000

PassengerPoolIdleTime 300

PassengerMaxPoolSize 15

PassengerUseGlobalQueue on

PassengerHighPerformance on

Listen 8140

<VirtualHost *:8140>

SSLEngine on

SSLCipherSuite SSLv2:-LOW:-EXPORT:RC4+RSA

SSLCertificateFile      /var/lib/puppet/ssl/certs/master.jongeun.co.kr.pem

SSLCertificateKeyFile   /var/lib/puppet/ssl/private_keys/master.jongeun.co.kr.pem

SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem

SSLCACertificateFile    /var/lib/puppet/ssl/ca/ca_crt.pem

# CRL checking should be enabled; if you have problems with Apache complaining about the CRL, disable the next line

SSLCARevocationFile     /var/lib/puppet/ssl/ca/ca_crl.pem

SSLVerifyClient optional

SSLVerifyDepth  1

SSLOptions +StdEnvVars

# The following client headers allow the same configuration to work with Pound.

RequestHeader set X-SSL-Subject %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-DN %{SSL_CLIENT_S_DN}e

RequestHeader set X-Client-Verify %{SSL_CLIENT_VERIFY}e

ServerName master.jongeun.co.kr

ServerAlias master.jongeun.co.kr

RackAutoDetect On

DocumentRoot /usr/share/puppet/rack/puppetmasterd/public/

<Directory /usr/share/puppet/rack/puppetmasterd/>

Options None

AllowOverride None

Order deny,allow

Deny from all

</Directory>

<Location />

Options None

Order deny,allow

Deny from all

allow from 10.40

</Location>

</VirtualHost>
 

여러개의 도메인을 이용해야 하므로 SSL 설정에서 ServerName, ServerAlias 에 사용할 모든 도메인을 설정해 주어야 한다. 안 그러면 puppet client 에서 접속시 인증서와 관련한 에러가 난다. (certificate verify failed 등의 메시지)

/var/lib/puppet/ssl/ca/ca_crt.pem 파일은 /var/lib/puppet/ssl/certs/ca.pem 으로 설정을 하는 것이 편리하다.

mkdir -p /usr/share/puppet/rack/puppetmasterd

mkdir /usr/share/puppet/rack/puppetmasterd/public /usr/share/puppet/rack/puppetmasterd/tmp

cp /usr/share/puppet/ext/rack/files/config.ru /usr/share/puppet/rack/puppetmasterd/

chown puppet /usr/share/puppet/rack/puppetmasterd/config.ru

httpd 시작

/etc/init.d/httpd restart

모든 것이 정상작동을 하면 이제 puppetmaster 는 직접 실행을 하지 않아도 된다. puppet client 에서 요청을 하면 httpd 에서 puppetmaster 를 띄운다. httpd 를 내리면 puppetmaster 도 내려간다.

 

 

 

3. Puppet 시스템 구성

Puppet Master server : puppet certs 서버. puppet client 에 대한 인증 기능 수행
Puppet File server : puppet file 배포용
Puppet Reporting server : puppet reporting 용

 

 

 

 

 

24 모듈 설치 방법

Puppet 은 프로세서 내  forge.puppet labs.com의 연결을  통하여, Module을 설치할수 있다.

puppet module list 현재 설치되어있는 리스트 확인

 

3. NTP 설치

puppet module search ntp

forge.puppet labs.com 의 ntp 프로세서가 있는지 확인한다.

puppet module install puppetlabs-ntp

'관리툴 > Puppet' 카테고리의 다른 글

Puppet 설치 및 기본설정  (2) 2013.04.16