マルチマシン環境で、vagrant 構成でマシンごとに異なるシェル スクリプトを実行しようとしています。
私は smartos の定義と centos の定義を持っていますが、両方で同じchef-soloプロバイダー構成を実行する前に、それぞれに異なるシェルプロバイダー構成を実行したいと考えています。
#!/usr/bin/env ruby
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
$smartos_script = <<-SHELL
echo "http://10.40.95.5" > /opt/local/etc/pkgin/repositories.conf
rm -rf /var/db/pkgin && pkgin -y update
SHELL
$centos_script = <<-SHELL
touch /opt/my_file
SHELL
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.berkshelf.enabled = true
config.ssh.forward_agent = true
config.vm.define :smartos do |smartos|
smartos.vm.box = "smartos"
smartos.vm.box_url = 'http://dlc-int.openindiana.org/aszeszo/vagrant/smartos-base1310-64-virtualbox-20130806.box'
smartos.vm.guest = :solaris
config.vm.provision :shell do |shell|
shell.inline = $smartos_script
end
end
config.vm.define :centos do |centos|
centos.vm.box = "centos"
centos.vm.box_url = 'http://dlc-int.openindiana.org/aszeszo/vagrant/smartos-base1310-64-virtualbox-20130806.box'
config.vm.provision :shell do |shell|
shell.inline = $centos_script
end
end
config.vm.provision :chef_solo do |chef|
chef.add_recipe 'test'
end
end
smartos.vm.provision
config の代わりに使用してみましたが、違いは見られませんでした。
誰も私がこれを行う方法を知っていますか?