Packer的Puppet供应摊位

时间:2014-03-13 21:02:27

标签: virtualbox puppet packer

我对整个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

任何建议都会有所帮助。甚至关于如何调试它以查看幕后发生的事情

1 个答案:

答案 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}}"
            }
        }
    }

来源:在这里找到一个例子https://github.com/AdoptOpenJDK/openjdk-virtual-images/blob/master/packer/openjdk-development/openjdk-development.json