Я создаю машину с четырьмя кластерами с Vagrant и инициализирую эти машины с помощью марионетки.
Я хочу найти способ, чтобы мои сценарии марионетки запускались только на отдельной машине. В настоящее время каждый марионеточный сценарий выполняется одинаково на каждой машине.
Вот мой Vagrantfile
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
Кстати, я обычно добавляю к поставщикам параметры отладки и подробности, если они доступны.