puppet 설치 및 설정
Puppet 은 크로스 플랫폼 의 집중 화 설정 관리 시스템 으로 자 유 롭 게 설명 하 는 언어 를 사용 하여 설정 파일,사용자,Cron,소프트웨어 패키지,시스템 서비스 등 을 관리 할 수 있 습 니 다.Puppet 은 이 를'자원'이 라 고 통칭 합 니 다.
Puppet 은 Ruby 언어 를 기반 으로 Apache 프로 토 콜 에서 권한 을 수 여 받 은 오픈 소스 소프트웨어 로 클 라 이언 트-서버(C/S)방식 으로 실행 할 수도 있 고 독립 적 으로 실행 할 수도 있 습 니 다.클 라 이언 트 는 기본적으로 30 분 마다 서버 와 업 데 이 트 를 확인 하여 설정 의 일치 성 을 확보 합 니 다.
Puppet 설치 절차
1)루비,루비-libs,루비-shadow 를 설치 하여 사용자 와 그룹 관 리 를 한다.
2)Facter,Puppet,Puppet-server 를 설치 합 니 다.
3)호스트 이름,도 메 인 이름 분석 또는 hosts 를 지정 합 니 다.
4)명령/etc/init.d/uppetmaster start 를 통 해 서버 를 시작 하거나 프로 세 스 가 아 닌 방식 으로 서버 를 시작 합 니 다.puppet master--no-daemonize--verbose 명령 을 통 해 관련 로그 와 출력 을 볼 수 있 습 니 다.
5)클 라 이언 트 설정 파일 Puppet.conf 에 Server 단 을 지정 하고 터미널 에서 Puppet agent-test 명령 을 실행 하거나 puppet agent--test--server server.domain.com 을 직접 실행 하여 Master 와 상호작용 하여 서명 인증 을 완료 합 니 다.
6)서버 에 노드 정 보 를 설정 하여 클 라 이언 트 에 게 무엇 을 해 야 하 는 지 알려 줍 니 다.
7)문법 이 정확 한 지 확인 합 니 다(전체 길 이 는 puppet parser vaidate test.pp 명령 으로 문법 검 사 를 합 니 다).
8)클 라 이언 트 가 설정 을 다시 실행 합 니 다(puppet agent--test)
1.본 고 는 Centos 6.4 운영 체제 에서 Puppet 을 설치 하고 설정 합 니 다.
(1)운영 체제 버 전에 따라 Yum 원본 설정
rpm -ivh http://yum.puppetlabs.com/el/6/products/x86_64/puppetlabs-release-6-7.noarch.rpm 3
(2)서버 쪽 에 Puppet 을 설치 합 니 다.다음 코드 를 실행 하면 Facter 설치 등 의존 패키지 와 자동 으로 일치 합 니 다.
yum -y install puppet-server
다음 명령 을 실행 하여 Puppet 의 설 치 를 검사 합 니 다.
[root@node1 ~]# puppet -V
3.7.3
[root@node1 ~]# facter -v
2.3.0
(3)클 라 이언 트 에 Puppet 을 설치 합 니 다.
yum -y install puppet
2.Puppet 설정
1)서비스의 사용 방법 은 다음 과 같다.
:[root@node1 ~]# /etc/init.d/puppetmaster
Usage: /etc/init.d/puppetmaster {start|stop|status|restart|reload|force-reload|condrestart|genconfig}
:[root@node2 ~]# /etc/rc.d/init.d/puppet
Usage: /etc/rc.d/init.d/puppet {start|stop|status|restart|reload|force-reload|condrestart|once|genconfig}
2)호스트 이름 지정 호스트 설정
[root@node1 ~]# cat /etc/hosts
192.168.254.2 node1.jiabin.com
192.168.254.5 node2.jiabin.com
[root@node2 ~]# cat /etc/hosts
192.168.254.2 node1.jiabin.com
192.168.254.5 node2.jiabin.com
3)방화벽 을 설치한다.
Puppet 은 8140 포트 를 감청 하기 때문에 8140 포트 를 개방 해 야 합 니 다.
iptables -A INPUT -p tcp --dport 8140 -j ACCEPT
4)테스트 할 파일 을 설정 합 니 다.
[root@node1 ~]# cat /etc/puppet/manifests/site.pp
node default {
file {
"/tmp/helloworld.txt": content => "hello, world";
}
}
5)클 라 이언 트 가 인증 을 시작 합 니 다.명령 은 다음 과 같 습 니 다.
root@node2 ~]# puppet agent --server node1.jiabin.com --test
Info: Caching certificate for ca
Info: csr_attributes file loading from /etc/puppet/csr_attributes.yaml
Info: Creating a new SSL certificate request for node2.jiabin.com
Info: Certificate Request fingerprint (SHA256): 9D:26:8A:44:54:D4:B0:2A:73:0B:B6:BE:72:C3:E4:19:3C:13:CA:3F:C7:B8:03:99:69:70:06:9A:C1:DF:AD:69
Info: Caching certificate for ca
Exiting; no certificate found and waitforcert is disabled
Agent 에서 인증서 인증 요청 을 하고 비밀 키 를 사용 하여 연결 을 암호 화 합 니 다.Puppet 은 SSL 인증 서 를 사용 하여 Master 와 Agent 간 의 연결 을 검증 합 니 다.에이전트 는 2 분 마다 서 명 된 인증서 가 있 는 지 확인 합 니 다.
6)서버 검증 완료.
[root@node1 ~]# puppet cert --list
"node2.jiabin.com" (SHA256) 9D:26:8A:44:54:D4:B0:2A:73:0B:B6:BE:72:C3:E4:19:3C:13:CA:3F:C7:B8:03:99:69:70:06:9A:C1:DF:AD:69
[root@node1 ~]# puppet cert sign node2.jiabin.com
Notice: Signed certificate request for node2.jiabin.com
Notice: Removing file Puppet::SSL::CertificateRequest node2.jiabin.com at '/var/lib/puppet/ssl/ca/requests/node2.jiabin.com.pem'
7)클 라 이언 트 가 설정 을 다시 실행 합 니 다.
[root@node2 ~]# puppet agent --server node1.jiabin.com --test
Info: Caching certificate for node2.jiabin.com
Info: Caching certificate_revocation_list for ca
Info: Caching certificate for node2.jiabin.com
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node2.jiabin.com
Info: Applying configuration version '1419922755'
Notice: Finished catalog run in 0.31 seconds
8)설정 검증
[root@node2 ~]# more /tmp/node2.txt
Hello World!
서명 고장 이 나 면 가장 직접적인 방법 이다.홈 ssl 전체 디 렉 터 리 삭제
rm -rf /var/lib/puppet/ssl
3.테스트 노드 설정
1)test 모듈 을 만 듭 니 다.모듈 디 렉 터 리 는 test 이 고 class 클래스 이름 도 test 여야 합 니 다.test 클래스 에 File 자원 이 있 습 니 다.File 자원 의 목적 은/tmp 디 렉 터 리 에 Node 2 호스트 이름 의 txt 파일 을 만 드 는 것 입 니 다.그 내용 은"Hello World!"입 니 다.
주 노드:
[root@node1 ~]# mkdir -p /etc/puppet/modules/test/{manifests,templates,files}
[root@node1 ~]# vim /etc/puppet/modules/test/manifests/init.pp
class test {
file { "/tmp/$hostname.txt": content => "Hello World!";}
}
2)모듈 설정 파일 에서 변 수 를"$hostname"로 정의 합 니 다.변 수 를 ERB 모듈 파일 에 전달 해 야 합 니 다.
[root@node1 ~]# vim /etc/puppet/modules/test/templates/test.erb
hostname
3)테스트 노드 생 성
[root@node1 ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp
node 'node2.jiabin.com' {
include test
include httpd
}
4)테스트 노드 를 Puppet 에 불 러 옵 니 다.
[root@node1 ~]# vim /etc/puppet/manifests/site.pp
import "nodes/node2.jiabin.com.pp"
node default {
file {
"/tmp/helloworld.txt": content => "hello, world";
}
}
~
import 명령 은 Puppet 에 nodes 디 렉 터 리 에.pp 로 끝 나 는 모든 파일 을 불 러 오 라 고 알려 줍 니 다.
4.설정 파일 검사
검 측 문법 은 두 부분 으로 나 뉘 는데 첫 번 째 단 계 는 Puppet Master 서버 에서 puppet parser vaidate 명령 을 사용 하 는 것 입 니 다.
두 번 째 단 계 는 Puppet Agent 클 라 이언 트 에서-noop 매개 변 수 를 사용 하여 문법 과 코드 를 검사 하 는 것 입 니 다.
[root@node1 ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp
Liux 에 표시 되 지 않 은 것 이 가장 좋 은 결과 입 니 다.
클 라 이언 트 검색
[root@node2 ~]# puppet agent --test --server node1.jiabin.com --noop
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node2.jiabin.com
Info: Applying configuration version '1419922755'
Notice: Finished catalog run in 0.33 seconds
httpd 모듈 추가
1)httpd 모듈 에 해당 하 는 디 렉 터 리 만 들 기
[root@node1 ~]# mkdir -p /etc/puppet/modules/httpd/{manifests,templates,files}
2)httpd 모듈 파일 편집,자원 설정 지정
[root@node1 ~]# vim /etc/puppet/modules/httpd/manifests/init.pp
class httpd {
yumrepo { "repo163":
descr => "163 repo",
baseurl => "http://mirrors.163.com/centos/6/os/x86_64/",
gpgcheck => "0",
enabled => "1";
}
package {
"httpd":
ensure => installed,
require => Yumrepo["repo163"];
}
}
3)node2.jiabin.com.pp 수정,httpd 모듈 추가
[root@node1 ~]# vim /etc/puppet/manifests/nodes/node2.jiabin.com.pp
node 'node2.jiabin.com' {
include test
include httpd
}
4)설정 파일 문법의 정확성 검사
[root@node1 ~]# puppet parser validate /etc/puppet/modules/test/manifests/init.pp
Liux 에 표시 되 지 않 은 것 이 가장 좋 은 결과 입 니 다.
5)클 라 이언 트 에서 설정 을 실행 합 니 다.명령 은 다음 과 같 습 니 다.
[root@node2 ~]# puppet agent --server node1.jiabin.com --test
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Caching catalog for node2.jiabin.com
Warning: The package type's allow_virtual parameter will be changing its default value from false to true in a future release. If you do not want to allow virtual packages, please exp
(at /usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:430:in `default')
Info: Applying configuration version '1419926864'
Notice: Finished catalog run in 0.85 seconds
프로그램 실행 에 영향 을 주지 않 는 경고 가 나 왔 습 니 다.서버 쪽 pp 파일 에 package 를 추가 할 수 있 습 니 다:allowvirtual => false, 나타 난 경 고 를 해결 하 겠 습 니 다.
[root@node1 ~]# vim /etc/puppet/modules/httpd/manifests/init.pp
class httpd {
yumrepo { "repo163":
descr => "163 repo",
baseurl => "http://mirrors.163.com/centos/6/os/x86_64/",
gpgcheck => "0",
enabled => "1";
}
package {
"httpd":
ensure => installed,
require => Yumrepo["repo163"],
allow_virtual => false;
}
}
6)httpd 가 성공 적 으로 설치 되 었 는 지 확인
[root@node2 ~]# rpm -q httpd
httpd-2.2.15-26.el6.centos.x86_64
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Moderne Puppet 노드 분류Innerhalb von Puppet stehen unterschiedliche Varianten für die Node Klassifizierung zur Verfügung. 외부 노드 분류 Achtung: Man...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.