2013-02-09 2 views
7

Ich benutze vagrant 1.0.1 auf einer precise32 Basisbox, um mit Puppe zu spielen. Provisioning funktioniert gut, meine Manifeste werden ausgeführt. Standardmäßig installiert Vagrant Marionette 2.7.14 unter/opt/vagrant_ruby/bin/puppet auf dem Gast.Wie ändere ich die von vagrant installierte Marionettenversion

Wie kann ich vagabundieren (oder wer installiert jemals Marionette auf dem Gast), um eine neuere Version wie Marionette 3.0 oder 3.1 zu verwenden?

Antwort

7

Sie müssen die BaseBox, die Sie in vagrant verwenden, neu erstellen und installieren Sie die gewünschte Version von Puppet. Ich habe das gleiche für Cent 6.3 mit Marionette 3.0 gemacht. Die Veewee gem ist ein großartiges Dienstprogramm zum Erstellen und Verwalten von Vagrant-Basisboxen für Oracle Virtualbox.

+0

ich nicht bewusst war, dass Marionette und Koch mit der Box kam. Ich dachte, sie würden nur installiert werden, wenn der entsprechende Provisioner in der Vagrant-Datei konfiguriert wurde. Danke für das Aufzeigen. – wischan

11

Sie können auch Marionette mit Shell-Provisioner vor Marionette Provisioner aktualisieren aktualisieren. Wie gesagt in Vagrant documentation:

Multiple config.vm.provision Methoden können mehrere Versorger zu definieren, verwendet werden. Diese Provisioner werden in der Reihenfolge ausgeführt, in der sie definiert wurden. Dies ist aus verschiedenen Gründen nützlich, aber meistens wird es verwendet, damit ein Shell-Skript einen Teil des Systems starten kann, damit ein anderer Provisioner es später übernehmen kann.

Hier ist Beispiel Vagrantfile für CentOS 6:

# 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 
Verwandte Themen