Vagrant를 사용하여 초기 Puppet 구성을 시작하고 추가 매니페스트를 모듈에 포함시키지 않고 꼭두각시 실행 워크 플로우에 여러 매니페스트 (site.pp 제외)를 포함 / 실행하는 방법에 혼란이 있습니다.
꼭두각시가 가리키는 꼭두각시 매니페스트 디렉토리에는 site.pp와 hierasetup.pp라는 두 개의 매니페스트가 있습니다.
config.vm.provision "puppet" do |puppet|
puppet.manifests_path = "puppet_files/manifests"
puppet.module_path = "puppet_files/modules"
puppet.manifest_file = "site.pp"
puppet.options = "--verbose --debug"
end
현재 site.pp가 hierasetup.pp를 호출하는 매니페스트입니다. 내 site.pp는 다음과 같습니다.
File {
owner => 'root',
group => 'root',
mode => '0644',
}
import "hierasetup.pp"
include jboss
그러나 "import"의 지원 중단에 대한이 오류가 발생합니다.
경고 : 'import'사용은 /tmp/vagrant-puppet-1/manifests/site.pp:33에서 더 이상 사용되지 않습니다. http://links.puppetlabs.com/puppet-import-deprecation 참조 (grammar.ra : 610 :`_reduce_190 ')
"대신 시도 할 것"아래의 참조 된 URL에 따르면 " 노드 정의를 별도의 파일로 유지하려면 디렉토리를 기본 매니페스트로 지정하십시오 "라고합니다.
또한 주요 매니페스트에 대한이 꼭두각시 문서 는 다음과 같이 말합니다.
" 권장 : ENC에 의존하는 대신 기본 매니페스트를 많이 사용하는 경우 매니페스트 설정을 $ confdir / manifests로 변경하십시오. 그러면 가져 오기 키워드를 피하면서 최상위 코드를 여러 파일로 분할 할 수 있습니다. 간단한 환경의 동작과도 일치합니다. "
Puppet은 특정 매니페스트 파일 대신 전체 디렉토리를 참조 할 수있는 것으로 보입니다 .Vagrant 가이를 준비 하고 " puppet.manifest_file ="site.pp "행을 삭제하고 대신 모든 * .pp 파일이 실행되는 상위 디렉토리 그러나 Vagrant에서 해당 행을 제거하면 예상되는 "default.pp"에 대한 불만이 발생합니다.
퍼펫 프로 비져 : * 구성된 퍼펫 매니페스트가 없습니다. 기존 매니페스트의 경로를 지정하십시오. /some/path/puppet_files/manifests/default.pp
그래서:
- 먼저, 여러 매니페스트를 올바르게 호출하는 "새로운"(가져 오지 않은) 방법을 이해하고 있습니까? 디렉토리 안에있는 모든 * .pp 파일이 실행될 디렉토리를 가리켜 야합니다.
- 두 번째로, Vagrant는 Puppet의 "가져 오기"사용 중단과 관련하여 디렉토리 참조를 수용하기 위해이 새로운 변경 사항을 "취득"했습니까?
업데이트 : Shane 덕분에 Vagrant의 GitHub 이슈 트래커 사이트에 # 2 (Vagrant의 코드가 꼭두각시 매니페스트 디렉토리를 가리 키지 않음) 문제 가보고되었으며 패치되었습니다 : https://github.com/mitchellh/vagrant / 문제 / 4169