다른 사람들이 그 이유를 다룬다 고 생각합니다. 누군가가 Puppet을 사용하여 원하는 것을 수행하는 방법을 이해하면 결정이 더 명확해질 것입니다.
기본 사례를 먼저 수행
Apache 용 Puppet 모듈은 기본적으로 많은 작업을 수행하지 않아야합니다. Apache를 설치하고 최소 표준으로 구성한 후 서비스를 시작하십시오. 지원해야하는 모든 배포판에서이 작업을 수행하십시오.
유연성 추가
가상 호스트를 추가해야합니다. 필요에 따라 파일을 삭제하거나 conf.d 또는 vhosts.d / 디렉토리 세트에서 파일을 제거 할 수있는 시스템이 생깁니다. 모듈 활성화 또는 구성과 동일합니다.
역할 또는 호스트 그룹 수업을 사용하여 빌딩 블록을 묶습니다.
꼭두각시를 사용하는 가장 좋은 방법은 그것이 첨가물인지 확인하는 것입니다. 위의 예제를 사용하여 다음을 수행하는 모듈이 있어야합니다
- 아파치 설치
- 기본 구성 설정
- 아파치에 가상 호스트 추가
- 추가 설정 구성
- 아파치 시작
특정 호스트 또는 그룹에 필요한 작업을 수행하기 위해 기본 Apache 모듈을 오버로드하는 대신 역할 또는 호스트 그룹 클래스를 처리해야합니다.
class role::web_cust1 {
include apache
apache::vhost {'www.domain.com': }
apache::vhost {'www.domain2.com': priority => '99', }
include php
include php-fpm
include mysql
}
다시 첨가제.
히 에라에 특별한 경우를 넣어
저는 Puppet의 Hiera를 Puppet의 데이터베이스로 생각하고 특수 비트를 저장하는 것을 좋아합니다. 특정 호스트 또는 호스트 그룹에 특별한 설정이 필요한 경우, 일반 사용자가 알 필요가 없도록 기본 기본값을 모듈에 설정하십시오. 그런 다음 해당 특수 호스트 또는 호스트 그룹에 대한 데이터를 삽입하여 필요에 따라 Hiera가 Puppet에 전달할 수 있도록합니다.
내 유스 케이스는 청취 포트입니다. 일부 서버에는 바니시 또는 haproxy가 있습니다. 기본적으로 Puppet 모듈에는 Apache에서 포트 80을 사용하지만 Hiera가 데이터를 찾으면 해당 기본값을 재정의합니다.