在一台机器上使用stream浪者生产的集群运行木偶

我正在build造一个有Vagrant的四机器机器,并使用木偶来供应这些机器。

我想find一种方法让我的木偶脚本只能在单独的机器上运行。 就像现在这样,每个木偶脚本在每台机器上运行相同。

这是我的stream浪文件

Vagrant.configure("2") do |config| config.vm.define "Greenplum setup" config.vm.box = "lucid64" config.vm.provider :virtualbox do |v, override| override.vm.box_url = "http://files.vagrantup.com/lucid64.box" v.customize ["modifyvm", :id, "--memory", "256"] end config.vm.provision :puppet do |puppet| puppet.manifests_path = "manifests" puppet.manifest_file = "base-hadoop.pp" puppet.module_path = "modules" end config.vm.define :smdw do |smdw_config| smdw_config.vm.network :private_network, ip: "192.168.2.11" smdw_config.vm.hostname = "smdw" end config.vm.define :sdw1 do |sdw1_config| sdw1_config.vm.network :private_network, ip: "192.168.2.12" sdw1_config.vm.hostname = "sdw1" end config.vm.define :sdw2 do |sdw2_config| sdw2_config.vm.network :private_network, ip: "192.168.2.13" sdw2_config.vm.hostname = "sdw2" end config.vm.define :mdw do |mdw_config| mdw_config.vm.network :private_network, ip: "192.168.2.10" mdw_config.vm.hostname = "mdw" end end 

如果您将木偶定义移动到您要运行木偶的主机的块内,它将只在该主机上运行。 我用一个类似的方法来定义一个傀儡大师和几个傀儡代理人的集群。

这里是一个简单的例子,假设这是你的smdw_config主机。 删除木偶节并更改smdw_config节如下:

 config.vm.define :smdw do |smdw_config| smdw_config.vm.network :private_network, ip: "192.168.2.11" smdw_config.vm.hostname = "smdw" smdw_config.vm.provision :puppet do |puppet| puppet.options = '-d -v' puppet.manifests_path = "manifests" puppet.manifest_file = "base-hadoop.pp" puppet.module_path = "modules" end end 

顺便说一句,我通常添加debugging和详细的选项,如果可用提供商。