puppet 자동화 운영 의 puppet 자원 기초 지식

puppet 자동화 운영 의 puppet 자원 기초 지식
    이 글 은 주로 독자 로 하여 금 puppet 자원 의 일부 지식 을 미리 이해 하 게 하 는 것 이다.
    변수 와 배열 은 자주 사용 할 것 입 니 다. 알 고 있 습 니 다.
    자원 이나 변 수 는 모두 정의 와 인용 으로 나 뉜 다.이 점 은 반드시 주의해 야 한다.
1. 변수 와 배열
① 변수:
프로 그래 밍 을 배 운 학생 들 은 모두 변수의 장점 을 알 아야 한다.일반적인 변 수 는 전역 변수 와 국부 변 수 를 구분 합 니 다. 제 개인 적 인 습관 으로 전역 변수 만 사용 합 니 다. 그러면 변수의 구분 에 시간 을 들 이지 않 아 도 됩 니 다.예 를 들 어 셸 에서 나 는 이렇다.
puppet 는 $기호 로 변수, 변수의 내용 을 정의 합 니 다.
설명 형식:      $변수 이름 = "값"
참조 형식:      ${변수 이름}
예: 
vi/etc/puppet/manifest/test.pp$test="  hello , guys "file {"/tmp/test":content => ${test};     # content => "hello , guys   "}
 
② 、 배열:
(1) 배열 을 직접 정의 합 니 다.
        puppet 는 사각형 괄호 로 배열 을 정의 하고 배열 의 내용 은 쉼표 로 나 누 어 각각 작은 따옴표 로 묶 습 니 다.
[ "apache2", "httpd ", "ssh "]
예:
vi/etc/puppet/manifest/test.pp$packages = [   "ruby1.8-dev","ruby1.8","ri1.8","rdoc1.8","irb1.8","libreadline-ruby1.8","libruby1.8","libopenssl-ruby"  ]package {   $packages: ensure => installed } 
(2) 문자열 에서 배열 을 만 들 고 split 함 수 를 사용 합 니 다.
예:
vi/etc/puppet/manifest/test.pp$menu = "egg   beans chips"$items =   split($menu, ' ')lunchprint {   $items: }Lunch included   eggLunch included   beansLunch included   chips
메모: split 는 두 개의 인자 가 필요 합 니 다. 첫 번 째 는 split 가 필요 한 문자열 이 고, 두 번 째 는 split 의 구분자 입 니 다.
       split(   ,   )

vi/etc/puppet/manifest/test.pp$menu = "egg and beans and chips"$items = split($menu, 'and')
 
정규 표현 식
vi/etc/puppet/manifest/test.pp$lunch = "egg:beans,chips"$items = split($lunch, ':|,')
2. 자원 총론
puppet 기본 단원 은 자원 입 니 다. 자원 은 시스템 의 일부 속성 을 설명 합 니 다. 이 부분 은 파일, 서비스, 패키지, 심지어 사용자 정의 자원 을 포함 합 니 다.
자원 을 정의 합 니 다. 자원 의 type (형식) 과 자원 의 title (제목) 을 지정 해 야 합 니 다.
형식:
type { "title1 ",…,"title ":
    attribute => "value",
              ...
              attribute => "value";
  }
예:
vi/etc/puppet/manifest/test.ppfile{"/etc/passwd":name =>   "/etc/passwd",owner => root,group => root,mode => 644;}
 
    위의 코드 는/etc/passwd 의 권한 을 644 로 유지 하고 루트 사용자 와 루트 사용자 그룹 에 속 합 니 다.
첫 번 째 줄 의 file 은 자원 의 유형 을 지정 하 는 것 입 니 다. "file"형식 입 니 다.
두 번 째 줄 의 "/etc/passwd"는 자원 title 입 니 다. title 의 역할 은 puppet 가 이 자원 을 유일 하 게 표시 할 수 있 도록 하 는 것 입 니 다. 세 번 째 줄 의 name 은 그 파일 을 조작 할 것 을 지정 하 였 습 니 다. 기본 적 인 상황 에서 name 은 title 과 같 기 때문에 name 은 생략 할 수 있 는 경우 가 많 습 니 다. 이 점 에 주의 하 십시오.
예:
vi/etc/puppet/manifest/test.ppfile{"sshdconfig":name =>   $operatingsystem ? {solaris =>   "/usr/local/etc/ssh/sshd_config",default =>   "/etc/ssh/sshd_config";},owner => root,group => root,mode => 644,}
 
    자원 의 title 은 sshdconfig 이지 만 name 은 운영 체제 가 적당 한 값 을 선택 하 는 지 판단 할 수 있 습 니 다. 그러면 다른 자원 이 sshdconfig 에 의존 하려 면 sshdconfig 에 의존 하 는 것 만 설명 하면 됩 니 다. 파일 이 어떤 경로 아래 에 있 는 지 관심 을 가 질 필요 가 없습니다. 예 를 들 어 아래 코드:
vi/etc/puppet/manifest/test.ppservice   {"sshd":subscribe =>   File[sshdconfig],}
    sshd 서 비 스 를 지정 하 였 습 니 다. 이 서 비 스 는 파일 자원 sshd config 에 변동 이 있 는 것 을 발견 하면 스스로 reload 프로필 을 설정 합 니 다. 편리 하지 않 습 니까? 위의 subscribe 뒤의 File 에 주의 하 십시오. 첫 번 째 자 모 는 대문자 로 자원 관 계 를 정의 할 때, 이 자 모 는 대문자 로 써 야 합 니 다.
보통 puppet 코드 에서 같은 자원 을 많이 정의 할 수 있 습 니 다. [] 로 모든 자원 의 title 을 함께 쓸 수 있 습 니 다. 즉, 배열 입 니 다. 예 를 들 어:
vi/etc/puppet/manifest/test.ppfile{["/etc/passwd","/etc/hosts"]:owner => root,group => root,mode => 644;}
 
    파일 을 정의 할 때마다 mode, owner, group 을 입력 하면 번 거 로 울 수 있 으 므 로 puppet 의 site. pp 의 시작 부분 에서 자원 의 기본 값 을 정의 할 수 있 습 니 다.
자원 의 기본 값 을 정의 하려 면 자원 의 첫 번 째 자원 을 대문자 로 써 야 합 니 다. 예 를 들 어 아래 코드 는 모든 file 자원 의 mode 가 644 이 고 owner 는 root 입 니 다. 기본 값 은 뒤의 설정 으로 덮어 쓸 수 있 습 니 다.
vi/etc/puppet/manifest/test.ppFile{owner   => root,mode => 644;}
    puppet 에서 자원 간 의 관 계 를 정의 할 수 있 습 니 다. 예 를 들 어 앞에서 언급 한 것 처럼 sshdconfig 파일 이 수정 되면 sshd 서 비 스 를 다시 시작 합 니 다. puppet 에는 또 다른 자원 관계 가 있 습 니 다. 예 를 들 어 자원 A 는 자원 B 에 의존 하고 자원 B 가 존재 하지 않 으 면 자원 A 는 실행 되 지 않 습 니 다. 자원 의존 속성 을 정의 하 는 것 은 requre 입 니 다. 예 를 들 어:
vi/etc/puppet/manifest/test.ppfile{"/etc/apache2/port.conf":content =>   "80",require   => Package["apache2"];} package{"apache2":ensure   =>installed;}
 
    file 자원 설정 port. conf 의 내용 은 80 이지 만 file 자원 을 설정 하기 전에 apache 2 라 는 패키지 설정 을 요구 합 니 다 (즉, file 자원 의존 Package [apache 2]).
 
3. 자원 의 유형
    puppet 의 자원 은 구체 적 인 시스템 관리 임무 가 추상 적 으로 이 루어 진 것 입 니 다. 시스템 관리 에서 어떤 임 무 를 만나면 해당 하 는 자원 유형 이 있 습 니 다. 현재 puppet 가 지원 하 는 자원 유형 은 다음 과 같 습 니 다.
    file           파일/디 렉 터 리 관리
    package        패키지 관리 (yum install | remove)
    service        서비스 관리 (start | restart | stop | status)
    cron           crontab 정시 작업 관리
    user           사용자 추가
    group          사용자 그룹 추가
     exec           셸 명령
    notify         자원 간 의 통신
    이로써 puppet 의 자원 기초 지식 은 끝 났 습 니 다. 변수 와 배열 은 자주 사용 할 것 입 니 다. 다음은 puppet 의 file 자원 학습 입 니 다. 다음 회 분 해 를 들 어 보 세 요!!

좋은 웹페이지 즐겨찾기