이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 8686|회답: 0

구성 관리: 퍼펫 설치 및 사용 (1)

[링크 복사]
게시됨 2014. 10. 20. 오전 9:47:45 | | |
1. 퍼펫 소개

시스템 관리자는 종종 반복적인 작업들에 갇혀 있습니다: 패키지 업그레이드, 구성 파일 관리, 시스템 서비스, 크론 작업, 새 구성 추가, 버그 수정 등. 이러한 작업들은 종종 반복적이고 비효율적이며, 이를 해결하면 첫 번째 대응은 자동화되어 맞춤형 스크립트가 생성되도록 하는 것입니다. 환경의 복잡성 때문에 맞춤형 스크립트와 애플리케이션이 반복적으로 개발되어 여러 플랫폼에 적용하기 어렵고, 유연성과 기능을 보장하기 어렵기 때문에 Puppet과 같은 자동화된 구성 관리 도구가 등장했습니다.

오픈 소스 세계에서는 선택할 수 있는 다양한 구성 도구가 있으며, 이 분야의 주요 제품들은 다음과 같습니다:

    Puppet (http://puppet.reductivelabs.com/): C/S 아키텍처를 사용하여 선언적 언어로 클라이언트를 구성하는 Ruby로 작성된 구성 관리 도구입니다.
    Cfengine (http://www.cfengine.org): 1993년에 출시된 최초의 오픈 소스 구성 도구 중 하나로, 교육 기관에서 주로 사용되는 C/S 아키텍처입니다.
    LCFG(http://www.lcfg.org/): XML을 사용하여 구성을 정의하는 C/S 아키텍처용 구성 관리 도구입니다.
    Bcfg2: Python으로 작성된 C/S 아키텍처용 구성 관리 도구로, 명세와 클라이언트 응답을 사용하여 대상 호스트를 구성합니다.

이 문서는 Puppet을 사용해 호스트, 애플리케이션, 백그라운드 프로그램 및 다양한 서비스를 관리하는 방법을 설명하는 데 전념하고 있습니다.

퍼펫 소개:

1. 퍼펫은 무엇에 사용되나요?

Puppet은 C/S 배포 아키텍처에 의존하는 오픈 소스 루비 기반 시스템 구성 관리 도구입니다. 주요 개발자는 GPLv2 저작권 라이선스를 따르는 Luke Kanies입니다. 1997년부터 카니스는 UNIX 시스템 관리에 참여해 왔으며, 퍼펫의 개발은 이 경험에서 비롯되었습니다. 사용 가능한 구성 도구에 만족하지 못한 카니스는 2001년부터 2005년까지 Reductive 연구실에서 도구 개발을 시작했습니다. 곧 Reductive Labs는 대표 제품인 퍼펫을 출시했습니다.

2. 퍼풋의 특징

많은 시스템 구성 관리 도구들이 매우 유사하게 작동합니다. 예를 들어 cfengine이 있습니다. 퍼펫의 독특한 점은 무엇인가요?

Puppet의 문법은 모든 대상 호스트에서 별도의 스크립트를 만들어 사용자를 빌드할 수 있게 해줍니다. 모든 대상 호스트는 로컬 시스템에 적용 가능한 문법을 사용하여 모듈을 해석하고 실행합니다. 예를 들어, 이 구성이 Red Hat 서버에서 실행된다면, useradd 명령어를 사용하여 사용자를 생성하세요; 이 구성이 FreeBSD 호스트에서 실행될 경우, adduser 명령어를 사용합니다.

Puppet의 또 다른 놀라운 점은 유연성입니다. 오픈 소스 소프트웨어의 특성상 Puppet의 소스 코드를 자유롭게 얻을 수 있으며, 문제가 발생하고 가능하다면 환경에 맞게 코드를 수정하거나 향상시킬 수 있습니다. 또한, 커뮤니티 개발자와 기부자들은 퍼펫의 역량을 계속 강화하고 있습니다. 또한 많은 개발자와 사용자 커뮤니티가 Puppet의 문서와 기술 지원을 제공하는 데 헌신하고 있습니다.

퍼펫도 크기 조절이 쉽습니다. 맞춤형 패키지 지원과 특수 시스템 환경 구성을 Puppet 설치 프로그램에 빠르고 쉽게 추가할 수 있습니다.

3. 퍼펫의 작업 모드

퍼펫은 중앙 서버에 퍼펫 서버 패키지(퍼펫 마스터로 알려짐)를 설치하는 C/S 아키텍처 구성 관리 도구입니다. 관리해야 할 대상 호스트에 Puppet 클라이언트 소프트웨어(Puppet Client라고 불립니다)를 설치하세요. 클라이언트가 퍼펫 마스터에 연결하면, 퍼펫 마스터에 정의된 구성 파일이 컴파일되어 클라이언트에서 실행됩니다. 기본적으로 각 클라이언트는 30분마다 서버와 통신하여 구성 정보 업데이트를 확인합니다. 새로운 구성 정보가 있거나 변경 사항이 있을 경우, 해당 구성은 다시 컴파일되어 각 클라이언트에 실행을 위해 게시됩니다. 서버에서 구성 정보를 적극적으로 업데이트하여 각 클라이언트가 설정하도록 강제할 수도 있습니다. 클라이언트의 구성 정보가 변경되면, 서버로부터 원래 구성을 받아 수정할 수 있습니다.

구성 관리: 퍼펫 설치 및 사용 (1)


4. 퍼펫의 미래

마지막으로, 퍼펫은 아직 개발 중인 젊은 도구입니다. 퍼펫 커뮤니티는 빠르게 성장하고 있으며, 끊임없이 많은 새로운 아이디어가 도입되어 개발, 업데이트, 모듈이 매일 발표되고 있습니다.

2. 구성 및 설치 (Puppet 2.6.4 CentOS 5.4 설치):

퍼펫 서버와 클라이언트에서 저장소를 구성하세요:
RPM -으악 http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
[root@puppetmaster ~]# vi /etc/yum.repos.d/epel.repo
추가:
[에펠 인형]
이름=에펠 인형
baseurl=http://tmz.fedorapeople.org/repo/puppet/epel/5/$basearch/
enabled=0
GPGCHECK=0

저장소 puppet.repo를 추가하세요:
[root@puppetmaster ~]# vi /etc/yum.repos.d/puppet.repo
[퍼펫랩]
name=Puppet Labs 패키지
baseurl=http://yum.puppetlabs.com/base/
enabled=0
GPGCHECK=0

인형극장 설치:
[root@puppetmaster ~]# yum --enablerepo=epel,epel-puppet install puppet-server

호스트를 수정하고 다음 두 레코드를 추가하세요:
[root@puppetmaster ~]# vi /etc/호스트
192.168.0.10 puppetmaster.leju.com 퍼펫
192.168.0.100 puppetclient.leju.com

퍼펫 설정:
[root@puppetmaster ~]# CD /etc/퍼펫/
[root@puppetmaster 인형]# vi 인형.conf

[주인공]
    # 퍼펫 로그 디렉토리.
    # 기본 값은 '$vardir/로그'입니다.
    logdir = /var/log/puppet

    # 퍼펫 PID 파일이 보관되는 곳.
    # 기본 숫자는 '$vardir/run'입니다.
    rundir = /var/run/puppet

    # 여기는 SSL 인증서가 보관되는 곳입니다.
    # 기본 값은 '$confdir/ssl'입니다.
    ssldir = $vardir/ssl

[요원]
    # 퍼펫이 클래스 목록을 저장하는 파일
    # 회수된 구성과 관련되어 있습니다.  로딩할 수 있습니다
    # '--loadclasses'를 사용하는 별도의 '''puppet''' 실행 파일
    # 옵션.
    # 기본 값은 '$confdir/classes.txt'입니다.
    classfile = $vardir/classes.txt

    # 여기서 puppetd가 로컬 구성을 캐시합니다.  An
    # 확장자는 캐시 형식이 자동으로 추가됨을 나타냅니다.
    # 기본 값은 '$confdir/localconfig'입니다.
    localconfig = $vardir/localconfig
    서버 = puppetmaster.leju.com
    보고서 = 참
    듣기 = 진짜

[스승]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
    자동서명 = 참
    보고서 = 저장
   
[root@puppetmaster 꼭두각시]# vi fileserver.conf
     [파일]
    path /etc/puppet/files
    허락 *

[모듈들]
    허락 *

[플러그인]
    허락 *

[root@puppetmaster 인형]# mkdir /etc/puppet/files
   
[root@puppetmaster 인형]# CD 매니페스트/
site.pp를 만들고, 이는 꼭두각시 입력 설정 파일입니다:
[root@puppetmaster manifests]# vi site.pp
"modules.pp" 가져오기
"roles.pp" 가져오기
"nodes.pp" 가져오기

# 표준 유형에 대한 일반 설정
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin" }

Filebucket { main: server => "puppetmaster.leju.com" }
파일 { 백업 => 메인 }

modules.pp를 생성하여 모듈을 가져오세요:
[root@puppetmaster 현현]# vi 모듈s.pp
import "test"

서버 역할을 정의하기 위해 roles.pp를 생성하세요:
[root@puppetmaster 현현]# vi 역할.pp
클래스 베이스클래스 {
        포함 테스트
}

nodes.pp를 생성하여 서버 노드를 구성하세요:
[root@puppetmaster 현현]# vi nodes.pp
노드 '베이스노드' {
        기본 클래스 포함
}

노드 'puppetclient.leju.com'은 basenode {를 계승합니다.
        태그("테스트")
}

노드 'puppetmaster.leju.com'은 basenode {를 상속합니다.
        태그("테스트")
}

[root@puppetmaster 나타나며]# CD ..
[root@puppetmaster 인형]# MKDIR 모듈
테스트 모듈 만들기:
[root@puppetmaster 모듈]# mkdir -p 테스트/manifests/
[root@puppetmaster 모듈]# mkdir 테스트/파일/
[root@puppetmaster 모듈]# CD 테스트/파일/
[root@puppetmaster 파일]# vi test.txt
시험 선!
[root@puppetmaster 파일]# CD .. /manifests/
클라이언트에게 파일을 전달하는 테스트 클래스를 생성하세요:
[root@puppetmaster 나타나]# vi init.pp
클래스 테스트 {
        파일 { "/tmp/test.txt":
                ensure => 현재,
                그룹 => "근",
                소유자 => "뿌리",
                mode => "0644",
                출처 => "puppet:///test/test.txt"
        }
}

퍼펫 마스터 출시:
[root@puppetmaster 나타나]# /etc/init.d/puppetmaster 시작
포트 8140이 켜져 있는지 확인해.

퍼펫 클라이언트 설치:
[root@puppetclient ~]# yum --enablerepo="epel, epel-puppet" 꼭두각시 설치

호스트를 수정하고 다음 두 레코드를 추가하세요:
[root@puppetclient ~]# vi /etc/호스트
192.168.0.10 puppetmaster.leju.com 퍼펫
192.168.0.100 puppetclient.leju.com

인형 구성 방법:
[root@puppetclient ~]# CD /etc/퍼펫/
[root@puppetclient 인형]# vi 꼭두각시.conf
[주인공]
    # 퍼펫 로그 디렉토리.
    # 기본 값은 '$vardir/로그'입니다.
    logdir = /var/log/puppet

    # 퍼펫 PID 파일이 보관되는 곳.
    # 기본 숫자는 '$vardir/run'입니다.
    rundir = /var/run/puppet

    # 여기는 SSL 인증서가 보관되는 곳입니다.
    # 기본 값은 '$confdir/ssl'입니다.
    ssldir = $vardir/ssl

[요원]
    # 퍼펫이 클래스 목록을 저장하는 파일
    # 회수된 구성과 관련되어 있습니다.  로딩할 수 있습니다
    # '--loadclasses'를 사용하는 별도의 '''puppet''' 실행 파일
    # 옵션.
    # 기본 값은 '$confdir/classes.txt'입니다.
    classfile = $vardir/classes.txt

    # 여기서 puppetd가 로컬 구성을 캐시합니다.  An
    # 확장자는 캐시 형식이 자동으로 추가됨을 나타냅니다.
    # 기본 값은 '$confdir/localconfig'입니다.
    localconfig = $vardir/localconfig

    서버 = puppetmaster.leju.com
    보고서 = 참
    듣기 = 진짜
   
[root@puppetclient 인형]# vi namespaceauth.conf
[꼭두각시 달리기자]
    허락 puppetmaster.leju.com
    *.leju.com
   
[root@puppetclient 인형]# vi auth.conf
마지막 줄에 allow *를 추가하세요
......
경로 /
누구든 승인하세요
허락 *

[root@puppetclient 인형]# CD
꼭두각시 처형:
[root@puppetclient ~]# 꼭두각시 --아니 --테스트 --추적 --디버그
만약 퍼펫 마스터가 autosign=true를 설정하지 않는다면, Puppet Master에서 실행해야 합니다:
[root@puppetmaster ~]# 꼭두각시 인증 -l
puppetclient.leju.com
[root@puppetmaster ~]# 인형 인증 -s puppetclient.leju.com
이렇게 서명 puppetclient.leju.com 해. 그 다음 클라이언트로 돌아가 여기서 실행하세요:
[root@puppetclient ~]# 꼭두각시 --아니 --테스트 --추적 --디버그
Join --noop, 이 구성은 클라이언트에 적용되지 않고, 주로 테스트용으로 출력물에 오류가 있는지 확인하고, 오류 없이 실행됩니다:
[root@puppetclient ~]# 꼭두각시 --테스트 --추적 --디버그

문서 보기:
[root@puppetclient ~]# ll /tmp/
총 8개
-rw-r--r-- 1 어근 2월 25일 2월 11일 22:35 test.txt
문서가 발행되었습니다.

퍼펫 마스터를 누르는 것도 가능합니다:
[root@puppetmaster ~]# 인형 차기 -d --호스트 puppetclient.leju.com
트리거 puppetclient.leju.com
지위 획득
지위는 성공입니다
puppetclient.leju.com 종료 코드 0으로 마무리했다
끝났어
0을 반환하면 클라이언트의 퍼펫이 성공적으로 트리거되었음을 의미합니다.

퍼펫을 자동 부팅 모드로 설정하세요:
chkconfig --level 2345 puppet on

패웬트마스터를 승객 모드로 수정하세요
Passengary는 Apache 2.x의 확장판으로, Apache에서 Rails 또는 Rack 애플리케이션을 실행하기 위한 것입니다. puppetmaster는 기본적으로 WEBrick을 사용해 파일 서비스를 제공하지만, 많은 Puppetmaster 클라이언트가 있다면 puppetmaster의 파일 서비스 성능이 떨어질 수 있으니, Puppetmaster를 더 견고하게 만들기 위해 Apache를 사용해 파일 서비스를 제공하세요.

설치:
[root@puppetmaster ~]# yum install httpd httpd-devel Ruby-devel rubygems
Passenger 2.2.2 RHEL5는 잘 작동합니다.
foreman.repo 저장소 추가:
[root@puppetmaster ~]# vi /etc/yum.repos.d/foreman.repo
[현장 감독]
name=Foreman 스테이블 저장소
baseurl=http://yum.theforeman.org/stable
GPGCHECK=0
활성화=1
[root@puppetmaster ~]# 얌 설치 루비젬-패신저-2.2.2-1
[root@puppetmaster ~]# 루비젬-랙-1.0.1-1
[root@puppetmaster ~]# 승객-설치-아파치2-모듈

Apache SSL 모듈 설치:
[root@puppetmaster ~]# 맛있게 설치mod_ssl

Puppet 랙 애플리케이션을 구성하려면:
mkdir -p /etc/퍼펫/rack/퍼펫마스터드/
mkdir /etc/puppet/rack/puppetmasterd/public /etc/puppet/rack/puppetmasterd/tmp
CP /USR/Share/Puppet/EXT/Rack/files/apache2.conf /etc/httpd/conf.d/puppetmasterd.conf
CP /USR/share/puppet/ext/rack/files/config.ru /etc/puppet/rack/puppetmasterd/
chown puppet /etc/puppet/rack/puppetmasterd/config.ru

[root@puppetmaster ~]# vi /etc/httpd/conf.d/passenger.conf
로드모듈 passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2
승객루비 /usr/bin/ruby
승객 최대 수영장 크기 30
패신저풀들타임 1500
패신거맥스퀘이즈 1000
승객 통계 스로틀 속도 120
RackAutoDetect 끄기
레일 자동 감지 꺼짐

[root@puppetmaster ~]# vi /etc/httpd/conf.d/puppetmasterd.conf
# 아마 이 설정을 조정하는 게 좋을 거야
승객 하이퍼포먼스
패신저맥스풀사이즈 12
패신저풀들타임 1500
# 승객 최대 요청 1000
승객 통계 스로틀 속도 120
RackAutoDetect 끄기
레일 자동 감지 꺼짐

8140 들어보세요

<VirtualHost *:8140>
        SSLEngine on
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLCipherSuite 전부:! ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-EXP

        SSLCertificateFile /var/lib/puppet/ssl/certs/puppetmaster.leju.com.pem
        SSLCertificateKeyFile /var/lib/puppet/ssl/private_keys/puppetmaster.leju.com.pem
        SSLCertificateChainFile /var/lib/puppet/ssl/ca/ca_crt.pem
        SSLCACertificateFile /var/lib/puppet/ssl/ca/ca_crt.pem
        # Apache가 CRL의 잘못된 서명에 대해 불만을 제기하면, 비활성화를 시도해 보세요
        # CRL 다음 줄에 댓글로 확인하지만, 권장하지 않습니다.
        SSLCARevocationFile /var/lib/puppet/ssl/ca/ca_crl.pem
        SSLVerifyClient 선택 사항
        SSLVerifyDepth 1
        SSLOptions +StdEnvVars

        # 다음 클라이언트 헤더는 동일한 구성을 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

        DocumentRoot /etc/puppet/rack/puppetmasterd/public/
        RackBaseURI /
        <디렉토리 /etc/puppet/rack/puppetmasterd/>
                옵션 없음
                허용 오버라이드 없음
                명령 허용, 거부
                모두에게 허용한다
        </Directory>
</VirtualHost>

puppetmaster 설정 파일을 수정하여 다음 두 줄을 추가하세요:
[root@puppetmaster ~]# vi /etc/puppet/puppet.conf
[스승]
    ssl_client_header = SSL_CLIENT_S_DN
    ssl_client_verify_header = SSL_CLIENT_VERIFY
   
/etc/sysconfig/puppetmaster를 수정하세요:
[root@puppetmaster ~]# vi /etc/sysconfig/puppetmaster
# 마지막에 다음 줄을 추가하세요:
PUPPETMASTER_EXTRA_OPTS="--리포트 스토어"
만약 현장 감독과 퍼펫-대시보드 모두에게 보고해야 한다면, 다음 줄을 추가하세요:
PUPPETMASTER_EXTRA_OPTS="--보고, 매장 감독, puppet_dashboard"

퍼펫마스터 서비스를 중단하고 아파치 서비스를 시작하세요:
[root@puppetmaster ~]# /etc/init.d/꼭두각시 조종사 멈춤
[root@puppetmaster ~]# /etc/init.d/httpd 시작

부트는 퍼펫마스터 서비스를 시작하는 것이 아니라 httpd 서비스를 시작합니다:
[root@puppetmaster ~]# chkconfig --레벨 2345 꼭두각시 조종자 꺼짐
[root@puppetmaster ~]# chkconfig --level 2345 httpd on

포트 8140이 활성화되어 있는지 확인하세요:
[root@puppetmaster ~]# netstat -tunlp |grep 8140
TCP 0 0 :::8140 :::* 들어보세요 9834/httpd

클라이언트 측에서 오류 로그가 인쇄되는지 테스트해 보세요:
[root@puppetclient ~]# 꼭두각시 --테스트 --추적 --디버그




이전의:php-fpm.conf 중요한 매개변수들이 자세히 설명되어 있습니다
다음:2014년 10월 25일(토요일) 오후 16시에 방공 및 재난 예방 경보가 시험되었습니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com