Vagrant는 실행을 위해 Puppet 매니페스트 디렉토리를 가리킬 수 있습니까?


9

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

그래서:

  1. 먼저, 여러 매니페스트를 올바르게 호출하는 "새로운"(가져 오지 않은) 방법을 이해하고 있습니까? 디렉토리 안에있는 모든 * .pp 파일이 실행될 디렉토리를 가리켜 야합니다.
  2. 두 번째로, Vagrant는 Puppet의 "가져 오기"사용 중단과 관련하여 디렉토리 참조를 수용하기 위해이 새로운 변경 사항을 "취득"했습니까?

업데이트 : Shane 덕분에 Vagrant의 GitHub 이슈 트래커 사이트에 # 2 (Vagrant의 코드가 꼭두각시 매니페스트 디렉토리를 가리 키지 않음) 문제 가보고되었으며 패치되었습니다 : https://github.com/mitchellh/vagrant / 문제 / 4169

답변:


6

먼저, 여러 매니페스트를 올바르게 호출하는 "새로운"(가져 오지 않은) 방법을 이해하고 있습니까? 디렉토리 안에있는 모든 * .pp 파일이 실행될 디렉토리를 가리켜 야합니다.

예, 그렇습니다 여기를 참조 하십시오 :

ENC에 의존하는 대신 기본 매니페스트를 많이 사용하는 경우 매니페스트 설정을 $ confdir / manifests로 변경하십시오. 이를 통해 import 키워드를 피하면서 최상위 코드를 여러 파일로 분할 할 수 있습니다.

또한, manifestmodulepath또한 디렉토리 환경과 매니페스트 디렉토리 행동에 찬성되지지고, 참조 여기 :

이제 디렉토리 환경이 완료되었으므로 구성 파일 환경은 더 이상 사용되지 않습니다. puppet.conf에서 환경 블록을 정의하면 puppet.conf에서 모듈 경로, 매니페스트 및 config_version 설정을 사용할 때처럼 사용 중단 경고가 발생합니다.

이것은 많은 배포에서 상당히 큰 변화이지만 장기적으로는 개선되어야합니다.


두 번째로, Vagrant는 Puppet의 "가져 오기"사용 중단과 관련하여 디렉토리 참조를 수용하기 위해이 새로운 변경 사항을 "취득"했습니까?

아닙니다. 그들의 문서에서 :

manifest_file (string)-Puppet 실행의 진입 점으로 사용될 매니페스트 파일의 이름입니다. 이 매니페스트 파일은 구성된 manifests_path에있을 것으로 예상됩니다.

Vagrant와 함께 사용하면 현재 사용 중단 경고를 처리해야합니다. 불행합니다. 그러나 수입품은 4.x까지 제거 될 예정이 아니기 때문에 Vagrant는이를 따라 잡을 시간이 있습니다.


글쎄, 내가 한 시간 이상 거래가 무엇인지 알아 내려고 노력했기 때문에 내가 미쳐 가지 않는다는 것을 아는 것이 좋습니다. Vagrant 개발자는 해당 기능의 필요성을 알고 있습니까? 아니면 그러한 추가 사항을 제안 할 수있는 곳이 있습니까?
SeligkeitIstInGott

아직 묻지 않은 것 같습니다 . 여기를 참조 하십시오 . 최신 퍼펫과 더 잘 맞도록 문제를 해결하십시오 (또는 github 계정이 없으면 할 것입니다)!
Shane Madden

내 개발 동료는 모두 github 계정을 가지고 있다고 생각하지만 계정이 있으면 내 로그인이 무엇인지조차 모릅니다. IT가 아니고 코더가 아니기 때문에 필요하지 않습니다. 정말 그렇게 하시겠습니까?
SeligkeitIstInGott

1
@SeligkeitIstInGott 그래, 뭔가 제출 할거야!
Shane Madden

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.