2013-02-09 12 views
7

Używam vagrant 1.0.1 na podstawce exact32 do grania z lalką. Obsługa działa poprawnie, moje manifesty są wykonywane. Domyślnie vagrant instaluje kukłę 2.7.14 pod/opt/vagrant_ruby/bin/puppet na gościu.Jak zmienić wersję lalek zainstalowaną przez vagrant

Jak skonfigurować włóczęgę (lub kto instaluje lalki na gościu), aby użyć nowszej wersji, takiej jak kukiełka 3.0 lub 3.1?

Odpowiedz

7

Musisz przebudować basebox, którego używasz w włóczędzy i zainstalować dowolną wersję Puppet, którą chcesz. Zrobiłem to samo dla Cent 6.3 w/puppet 3.0. The Veewee gem jest doskonałym narzędziem do budowania i zarządzania Vagrant baseboxes dla Oracle Virtualbox.

+0

I nie był świadomy, że lalek i szef kuchni przyszedł z pudełka. Sądziłem, że zostaną zainstalowane tylko wtedy, gdy odpowiedni komponent został skonfigurowany w pliku vagranta. Za wskazanie tego. – wischan

11

Możesz również zaktualizować lalkę za pomocą narzędzia zaporowego określonego jako przed instalatorem lalek. Jak powiedział w Vagrant documentation:

Multiple config.vm.provision metody mogą być wykorzystane do określenia wielu provisioners. Te komponenty zostaną uruchomione w kolejności, w jakiej zostały zdefiniowane. Jest to przydatne z różnych powodów, ale najczęściej jest używane tak, aby skrypt powłoki mógł uruchomić część systemu, aby inny komponent mógł przejąć później.

Oto przykład Vagrantfile dla 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