2014-03-13 56 views
4

我对这个整个帕克/流浪者,木偶世界很陌生。我正在尝试使用Packer和Puppet构建我的第一个虚拟机。帕克的木偶配置摊位

我可以成功构建一个virtualbox,并且我已经包含一个shell脚本调配器来安装puppet。我已经进入虚拟机以验证它是否有效,并安装了木偶。

然后我增加了一个额外的木偶无主供应者,看起来简直像这样:

# 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' provisioner]的'execute_command'可选参数(http://www.packer.io/docs/provisioners/puppet-masterless.html )。 – cassianoleal

+0

另一个建议是将'package'资源注释掉,这样Puppet就会使用空清单来执行。如果有效,你可以取消注释资源并尝试从VM内部运行'puppet apply' - 我会从Packer的输出中复制并粘贴命令。这可能会给你一些线索。 – 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