我在一个精确的 32 基础盒上使用 vagrant 1.0.1 来玩木偶。配置工作正常,我的清单正在执行。默认情况下,vagrant 在客户机的 /opt/vagrant_ruby/bin/puppet 下安装 puppet 2.7.14。
如何配置 vagrant(或曾经在来宾上安装 puppet 的人)以使用更新的版本,如 puppet 3.0 或 3.1?
您还可以使用在 puppet 配置器之前指定的 shell 配置器来更新 puppet 。正如Vagrant 文档中所说:
config.vm.provision
可以使用多种方法来定义多个供应商。这些配置程序将按照它们定义的顺序运行。出于各种原因,这很有用,但最常见的是它用于 shell 脚本可以引导系统的某些部分,以便稍后可以由另一个供应商接管。
这是CentOS 6的示例 Vagrantfile :
# Update puppet to version 3.2.2 before using puppet provisioning.
$puppet_update_script = <<SCRIPT
[ `rpm -qa puppetlabs-release` = 'puppetlabs-release-6-7.noarch' ] || rpm -ivh http://yum.puppetlabs.com/el/6/products/i386/puppetlabs-release-6-7.noarch.rpm
[ `rpm -qa puppet` = 'puppet-3.2.2-1.el6.noarch' ] || yum -y update-to puppet-3.2.2
SCRIPT
config.vm.provision :shell, :inline => $puppet_update_script
# Puppet-3.2.2 provisioning here
config.vm.provision :puppet do |puppet|
puppet.options = '--parser future'
puppet.manifests_path = 'puppet/manifests'
end
你需要重建你在 vagrant 中使用的 basebox 并安装你想要的任何版本的 Puppet。我为 Cent 6.3 w/puppet 3.0 做了同样的事情。Veewee gem是为 Oracle Virtualbox 构建和管理 Vagrant basebox 的绝佳实用程序。