2014-03-13 4 views
4

전 포장업자/방랑자 인형 세계에 새로 입문했습니다. Packer 및 Puppet을 사용하여 첫 번째 VM을 빌드하려고합니다.포장업자의 인형 준비 실이

가상 박스를 성공적으로 만들 수 있으며 꼭두각시를 설치하기위한 쉘 스크립트 프로비저를 포함 시켰습니다. VM이 작동하고 꼭두각시가 설치되었는지 확인하기 위해 VM에 ssh했습니다. 나는 포장을 실행하면

# java dependency 
package { 'openjdk-7-jdk' : 
    ensure => present 
} 

, 그것은이 시점에 도달하고 내동댕이 :

은 그럼 간단하게 다음과 같습니다 추가 꼭두각시 - 주인없는의 제공자를 추가

==> virtualbox-iso: Provisioning with Puppet... 
virtualbox-iso: Creating Puppet staging directory... 
virtualbox-iso: Uploading manifests... 
virtualbox-iso: Running Puppet: sudo -E puppet apply --verbose --modulepath='' --detailed-exitcodes /tmp/packer-puppet-masterless/manifests/ubuntu.pp 

어떤 제안 것 도움이 되길. 심지어 뒤에서 무슨 일이 벌어지고 있는지 디버그하는 방법에 대해서도

+0

것은 꼭두각시에'--debug' 플래그를 활성화하는 것입니다 발견. 필자는 Packer에 익숙하지 않지만 [puppet' 공급자]의'execute_command' 옵션 매개 변수를 사용해야하는 것 같습니다 (http://www.packer.io/docs/provisioners/puppet-masterless.html).). – cassianoleal

+0

또 다른 제안은 Puppet이 빈 매니 페스트를 사용하여 실행할 수 있도록'package' 리소스를 주석 처리하는 것입니다. 작동하는 경우, 자원의 주석을 풀고 VM 내부에서'꼭두각시 적용'을 실행하려고 시도 할 수 있습니다 - 나는 패커의 출력에서 ​​명령을 복사하여 붙여 넣을 것입니다. 그게 너에게 단서를 줄 수도있어. – cassianoleal

+0

좋은 아이디어. 나는 그것을 시도 할 것이다. 괴물을 사용하려고하는 정신으로 사용하고 싶습니다. 따라서 디버깅을 시도 할 것입니다. – kane

답변

3

나는 동일한 문제를 겪고 있었고, 방랑호 사용자의 비밀번호를 받기 위해 execute_command를 변경했습니다.

"override": { 
    "virtualbox-iso": { 
    "execute_command": "echo 'vagrant' | {{.FacterVars}}{{if .Sudo}} sudo -S -E {{end}}puppet apply --verbose --modulepath='{{.ModulePath}}' {{if ne .HieraConfigPath \"\"}}--hiera_config='{{.HieraConfigPath}}' {{end}} {{if ne .ManifestDir \"\"}}--manifestdir='{{.ManifestDir}}' {{end}} --detailed-exitcodes {{.ManifestFile}}" 
    } 
} 

전체 블록이

{ 
     "type": "puppet-masterless", 
     "manifest_file": "../puppet/manifests/base.pp", 
     "module_paths": [ 
      "../puppet/modules/" 
     ], 
     "override": { 
      "virtualbox-iso": { 
       "execute_command": "echo 'vagrant' | {{.FacterVars}}{{if .Sudo}} sudo -S -E {{end}}puppet apply --verbose --modulepath='{{.ModulePath}}' {{if ne .HieraConfigPath \"\"}}--hiera_config='{{.HieraConfigPath}}' {{end}} {{if ne .ManifestDir \"\"}}--manifestdir='{{.ManifestDir}}' {{end}} --detailed-exitcodes {{.ManifestFile}}" 
      } 
     } 
    } 

소스처럼 보이는 : 여기에 예를 들어 당신이 시도 할 수 https://github.com/AdoptOpenJDK/openjdk-virtual-images/blob/master/packer/openjdk-development/openjdk-development.json