我对整个Packer / Vagrant,Puppet世界都很陌生。我正在尝试使用Packer和Puppet构建我的第一个VM。
我可以成功构建一个虚拟机,并且我已经包含了一个shell脚本配置器来安装puppet。我已经进入VM验证它是否正常工作并安装了木偶。
然后我添加了另一个看起来像这样的木偶无主配置器:
# 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 :(得分:3)
我遇到了同样的问题,并更改了execute_command以接收vagrant用户的密码。
"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}}"
}
}
}