Ruby 流浪者:不同机器的不同供给者

Ruby 流浪者:不同机器的不同供给者,ruby,vagrant,Ruby,Vagrant,我正在尝试让我的vagrant配置为我的多机器环境中的每台机器运行不同的shell脚本 我对smartos和centos都有一个定义,但是我希望在两个系统上运行相同的chef solo提供程序配置之前,为每个系统运行不同的shell提供程序配置 #!/usr/bin/env ruby # Vagrantfile API/syntax version. Don't touch unless you know what you're doing! VAGRANTFILE_API_VERSION =

我正在尝试让我的vagrant配置为我的多机器环境中的每台机器运行不同的shell脚本

我对smartos和centos都有一个定义,但是我希望在两个系统上运行相同的chef solo提供程序配置之前,为每个系统运行不同的shell提供程序配置

#!/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
#/usr/bin/env ruby
#Vagrantfile API/语法版本。除非你知道自己在做什么,否则不要碰!
VAGRANTFILE\u API\u VERSION=“2”

$smartos_script=您使用

我还尝试使用smartos.vm.provision而不是config

试试这个简单的文件

$smartos_script = <<-SHELL
touch /opt/foo
SHELL

$centos_script = <<-SHELL
touch /opt/bar
SHELL

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  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.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'

    centos.vm.provision :shell do |shell|
      shell.inline = $centos_script
    end

  end

end
$smartos\u脚本=