puppet 입문 및 파악 의 puppet 소개 2 (소개 편)

5853 단어 puppet
앞에서 우 리 는 puppet 의 작업 모델 중부 서 층 에 대한 이 해 를 말 했 는데 이 절 은 주로 언어 와 자원 추상 층 과 사물 층 을 배치 하 는 것 을 말한다.
1.1.2 언어 와 자원 추상 층 설정
Puppet 은 설명 적 언어 로 설정 항목 을 정의 합 니 다. 설정 항목 은 Puppet 에서 '자원' 이 라 고 합 니 다.이러한 묘사 의 본질 로 인해 Puppet 과 많은 다른 설정 도구 사이 에 중요 한 차이 가 생 겼 다.설명 적 언어 는 설정 상 태 를 설명 할 수 있 습 니 다. 예 를 들 어 패키지 가 설치 되 어야 하거나 서비스 가 시작 되 어야 한 다 는 것 을 설명 할 수 있 습 니 다.
셸 이나 Perl 스 크 립 트 같은 대부분의 설정 도 구 는 명령 식 이나 프로 세 스 식 입 니 다.필요 한 최종 상태 가 아 닌 일 을 어떻게 해 야 하 는 지 설명 합 니 다. 예 를 들 어 대부분의 설정 을 관리 하 는 맞 춤 형 스 크 립 트 는 명령 식 으로 여 겨 져 야 합 니 다.
이것 은 Puppet 사용자 가 호스트 가 어떤 상태 에 있어 야 하 는 지 설명 하기 만 하면 된다 는 것 을 의미한다. 예 를 들 어 어떤 패키지 가 설치 되 어야 하고 어떤 서비스 가 실행 되 어야 하 는 지.Puppet 을 사용 하면 시스템 관리 자 는 이러한 상태 에 어떻게 도달 하 는 지 에 관심 을 가 질 필요 가 없습니다. 그것 은 Puppet 이 책임 집 니 다.반대로 호스트 의 설정 을 하나의 자원 으로 추상 화 하 는 방법 에 관심 이 있 습 니 다.
(1) 설정 언어
서술 적 언어의 실질 은 무엇 입 니까?간단 한 예 를 보 여 주세요.Red Hat 기업 판 Linux, Ubuntu, Solaris 를 포함 한 호스트 환경 이 있 습 니 다. 모든 호스트 에 vim 프로그램 을 설치 해 야 합 니 다.만약 손 으로 한다 면, 우 리 는 다음 과 같은 일 을 완성 하기 위해 스 크 립 트 를 써 야 한다.
대상 호스트 에 연결 하기 (비밀번호 입력 이나 키 제공 포함);
vim 가 설치 되 어 있 는 지 확인 하기;
없 으 면 플랫폼 마다 적절 한 명령 을 사용 하여 설치 합 니 다. 예 를 들 어 Red Hat 에서 yum 명령 을 사용 하고 Ubuntu 에서 apt - get 명령 을 사용 합 니 다.
명령 이 성공 적 으로 완 료 될 수 있 도록 보고 결과 도 포 함 될 수 있다.
주의 하 다. 설 치 된 vim 를 업그레이드 하거나 vim 의 특정 버 전 을 적용 해 야 할 때 위의 절 차 는 더욱 복잡 해 집 니 다.
Puppet 은 이 과정 을 다른 방식 으로 완성 합 니 다.우 리 는 Puppet 에서 vim 패키지 에 설정 자원 을 정의 합 니 다.모든 자원 은 하나의 유형 (관 리 된 자원 이 어떤 자원 인지 나타 낸다. 패키지, 서비스 또는 정시 작업 등), 제목 (자원 의 이름) 과 일련의 속성 (자원 상 태 를 설명 하 는 값, 예 를 들 어 서비스 가 시작 되 었 는 지 정지 되 었 는 지) 으로 구성 된다.
코드 목록 1 - 1 은 자원 의 예 입 니 다. 다음 과 같 습 니 다.
package { "vim":     
       ensure => present,
}  


코드 목록 1 - 1 의 자원 은 vim 패키지 가 설치 되 어야 한 다 는 것 을 나타 낸다.그것 의 구 조 는 이렇다.
   { "  ":
    => ,
}  

코드 목록 1 - 1 에서 자원 의 유형 은 package 입 니 다.Puppet 은 기본적으로 많은 자원 형식 을 제공 합 니 다. 파일, 서비스, 패키지 와 정시 작업 등 을 관리 할 수 있 습 니 다.주의 하 다. 있다http://docs.puppetlabs.com/references/stable/type.html현재 Puppet 에서 관리 할 수 있 는 모든 자원 유형 과 속성 을 찾 습 니 다.
다음은 자원 의 제목 입 니 다. 여기 서 우리 가 설치 해 야 할 패키지 의 이름: vim 입 니 다.자원 의 유형 과 제목 을 조합 하여 이 자원 에 대한 인용 을 구성한다.예 를 들 어 방금 자원 을 Package [vim] 라 고 할 수 있다.
마지막 으로, 우 리 는 하나의 단독 속성 을 지정 했다. ensure, 그것 의 값 은 present 이다.Puppet 은 속성 을 통 해 우리 가 자원 설정 에 필요 한 상 태 를 알 수 있 습 니 다.모든 자원 유형 에는 일련의 설정 가능 한 속성 이 있 습 니 다.여기 ensure 속성 은 패키지 의 상 태 를 가리 키 는 데 사 용 됩 니 다. 설치 되 어 있 고 마 운 트 해제 되 어 있 습 니 다.그 값 은 present 로 Puppet 에 이 패 키 지 를 설치 하고 싶다 고 알려 줍 니 다.이 패 키 지 를 마 운 트 해제 하려 면 값 을 absent 로 바 꾸 기만 하면 됩 니 다.
(2) 자원 추상 층
자원 이 생 성 된 후 에이전트 가 master 에 연결 되면 Puppet 은 이 자원 을 관리 할 때 발생 하 는 세부 적 인 문 제 를 책임 집 니 다.Puppet 은 서로 다른 플랫폼 과 운영 체제 가 특정 자원 유형 을 관리 할 때의 차 이 를 알 고 이에 따라 세부 적 인 문 제 를 처리 합 니 다.모든 자원 유형 에는 많은 '공급 자' 가 있다.패키지 자원 의 공급 자 는 특정한 패키지 관리 도 구 를 사용 하여 패 키 지 를 관리 하 는 방법 을 포함한다.예 를 들 어 패키지 라 는 자원 유형 에 있어 20 개가 넘 는 공급 자가 있 고 yum, aptitude, pkgadd, ports 와 emerge 를 포함 한 다양한 패키지 관리 도 구 를 포함한다.
에이전트 가 master 에 연결 되 었 을 때 Puppet 은 "Facter"라 는 도 구 를 사용 하여 에이전트 의 관련 정 보 를 되 돌려 줍 니 다. 호스트 가 실행 하 는 운영 체제 도 포함 되 어 있 습 니 다.그리고 Puppet 는 이 점 에 따라 이 운영 체제 에 적합 한 패키지 공급 자 를 선택 하고 이 공급 자 를 사용 하여 vim 패키지 가 설치 되 어 있 는 지 확인 합 니 다.예 를 들 어 Red Hat 에 서 는 yum 명령 을 수행 하고 Ubuntu 에 서 는 aptitude 명령 을 수행 하 며 Solaris 에 서 는 pkg 명령 을 사용 합 니 다.이 패 키 지 를 설치 하지 않 으 면 Puppet 이 설치 합 니 다.반대로 아무것도 하지 않 는 다.마지막 으로 Puppet 은 Puppet master 에 이 자원 설정 이 성공 적 으로 적용 되 었 는 지 보고 합 니 다.
2.1.  FACTER 와 FACTS.
Facter 는 에이전트 의 호스트 이름, IP 주소, 운영 체제 와 버 전, 기타 설정 항목 등 모든 에이전트 의 "fact"를 되 돌려 주 는 시스템 점검 도구 입 니 다.이 fact 들 은 에이전트 가 실 행 될 때 수집 하여 Puppet master 에 보 내 고 Puppet 이 사용 할 수 있 는 양 으로 자동 으로 생 성 됩 니 다.
명령 행 에서 facter 프로그램 을 실행 하여 클 라 이언 트 에서 사용 할 수 있 는 모든 fact 를 볼 수 있 습 니 다.모든 fact 는 키 값 을 되 돌려 줍 니 다.예 를 들 면:
operatingsystem => Ubuntu  
ipaddress => 10.0.0.10


이렇게 하면 우 리 는 이 값 을 사용 하여 모든 호스트 를 단독으로 설정 할 수 있다.예 를 들 어 호스트 의 IP 주 소 를 얻 은 후에 이 호스트 의 네트워크 설정 을 설정 할 수 있 습 니 다.
이 fact 들 은 변 수 를 통 해 Puppet 설정 에서 사용 할 수 있 습 니 다.미리 정 의 된 Puppet 설정 과 이 변 수 를 결합 하면 모든 호스트 에 맞 춤 형 설정 을 할 수 있 습 니 다.예 를 들 어 네트워크 설정 과 같은 일반적인 자원 을 만 들 고 클 라 이언 트 가 돌아 온 데 이 터 를 사용 하여 맞 출 수 있 습 니 다.
Facter 는 또한 Puppet 가 에이전트 에서 특정한 자원 유형 을 어떻게 관리 하 는 지 이해 하 는 데 도움 을 줄 수 있다.예 를 들 어 Facter 가 Puppet 호스트 가 Ubuntu 를 실행 하고 있다 고 알려 주면 Puppet 은 이 에이전트 에서 aptitude 명령 을 사용 하여 패 키 지 를 설치 해 야 한 다 는 것 을 알 수 있 습 니 다.Facter 역시 확장 이 가능 합 니 다. 사용자 정의 fact 를 추가 하여 호스트 에 대한 지정 한 정 보 를 되 돌려 줄 수 있 습 니 다.
1.1.3 트 랜 잭 션 계층
Puppet 의 트 랜 잭 션 층 이 바로 엔진 입 니 다.Puppet 사 무 는 모든 호스트 를 설정 하 는 과정 과 관련 되 어 있 습 니 다. 예 를 들 어 1. 설명 과 컴 파일 설정 을 포함 합 니 다.2. 컴 파일 된 설정 을 에이전트 에 동기 화 합 니 다.3. 에이전트 에 설정 적용 하기;4. 마스터 에 게 프로그램 이 실 행 된 결 과 를 보고 합 니 다.
Puppet 가 실행 하 는 첫 번 째 단 계 는 설정 을 분석 하고 에이전트 에 어떻게 적용 하 는 지 계산 하 는 것 입 니 다.이 를 위해 Puppet 은 모든 자원 과 그들의 관 계 를 나타 내 는 그림 을 만 들 고 에이전트 와 의 관 계 를 나타 낸다.Puppet 은 이러한 관계 에 따라 모든 호스트 응용 자원 의 순 서 를 결정 합 니 다.이 모델 은 Puppet 의 강력 한 특성 중 하나 입 니 다.
이 어 Puppet 은 모든 에이전트 에 해당 하 는 자원 을 가 져 다 주 고 '디 렉 터 리' 로 컴 파일 합 니 다.그리고 디 렉 터 리 를 각 호스트 에 보 내 고 Puppet 에이전트 를 통 해 적용 합 니 다.마지막 프로그램 이 실 행 된 결 과 는 보고 형식 으로 master 에 게 보 냅 니 다.
트 랜 잭 션 계층 은 호스트 에 반복 적 으로 생 성 되 고 응용 되도록 설정 할 수 있 습 니 다.이 를 멱 등 이 라 고 하 는데 여러 프로그램의 같은 조작 이 같은 결 과 를 가 져 올 수 있다 는 뜻 이다.Puppet 설정 은 호스트 에서 여러 번 안전하게 실 행 될 수 있 으 며, 실 행 될 때마다 같은 결 과 를 얻 을 수 있 습 니 다. Puppet 설정 은 이 점 을 사용 하여 설정 의 일치 성 을 확보 합 니 다.
그러나 Puppet 은 완전한 사무 성 을 가지 고 있 지 않다.사물 이 기록 되 지 않 았 기 때문에 일부 데이터베이스 처럼 사 무 를 스크롤 백 할 수 없습니다.그러나 무 조작 모드 (noop) 의 사무 모델 을 사용 하여 설정 의 실행 을 테스트 할 수 있 습 니 다. 이것 은 실제 적 인 변 화 를 가 져 오지 않 습 니 다.
요약: puppet 에 대한 이 해 는 개관 지식 이 많 습 니 다.puppet 를 사용 하면 ruby 언어 를 습득 할 필요 가 없 지만 puppet 의 문법 에 대한 이해 와 작업 원리 에 대한 이해 가 더 많 습 니 다!

좋은 웹페이지 즐겨찾기