【问题标题】:Not able to multimachine provision using vagrant with chef-solo无法使用带有 chef-solo 的 vagrant 进行多机配置
【发布时间】:2015-06-23 17:44:08
【问题描述】:

我正在尝试使用 vagrant 和 chef-solo 进行多机配置。一旦我应用“vagrant up”命令,我的网络配方就适用于 vm1 和 vm2。同样,其他配方适用于两个 VM。但是,我只想将 web 配方应用于 VM1,其他配方应用于 VM2。我正在使用 chef-solo 12.3.0 .
我的流浪文件是

Vagrant.configure("2") do |config|
   config.vm.provision :chef_solo do |chef|
   chef.cookbooks_path = "cookbooks"
   chef.add_recipe "pram::web"
   config.vm.define :vm1 do |server1|
   server1.vm.box = "ubuntu14"
   server1.vm.network :private_network, ip: "192.168.102.101"
   end
   end
 config.vm.provision :chef_solo do |chef|
     chef.cookbooks_path = "cookbooks"
     chef.add_recipe "pram::others"
     config.vm.define :vm2 do |server2|
     server2.vm.box = "ubuntu14"
      server2.vm.network :private_network, ip: "192.168.102.102"
          end
          end
  end

【问题讨论】:

    标签: vagrant vagrantfile chef-solo


    【解决方案1】:

    是的,我得到了这个问题的解决方案。在第二行代码中应该有 server1 而不是 config。 server1.vm.provision :chef_solo 做 |chef| 这个代码块应该在 VM1 块下。同样,第 10 行应该是 server2.vm.provision :chef_solo do |chef| . 否则给定的配方将适用于配置块下的所有虚拟机。 下面给出正确的解决方案。

      Vagrant.configure("2") do |config|
     config.vm.define :vm1 do |server1|
        server1.vm.box = "ubuntu14"
        server1.vm.network :private_network, ip: "192.168.102.101"
        server1.vm.provision :chef_solo do |chef|
        chef.cookbooks_path = "cookbooks"
        chef.add_recipe "pram::web"
        end
    end
      config.vm.define :vm2 do |server2|
         server2.vm.box = "ubuntu14"
         server2.vm.network :private_network, ip: "192.168.102.102"
         server2.vm.provision :chef_solo do |chef|
         chef.cookbooks_path = "cookbooks"
         chef.add_recipe "pram::others"
         end
      end
    

    结束

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2013-04-10
      • 1970-01-01
      • 2015-04-11
      • 1970-01-01
      • 2015-11-06
      相关资源
      最近更新 更多