Virtual-Machines
使用 vagrant 生成的集群在單台機器上執行 puppet
我正在用 Vagrant 建構一個四集群機器,並使用 puppet 配置這些機器。
我想找到一種方法讓我的 puppet 腳本只在單個機器上執行。就目前而言,每個 puppet 腳本在每台機器上都以相同的方式執行。
這是我的流浪文件
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
如果將 puppet 定義移動到要對其執行 puppet 的主機的塊內,它將僅在該主機上執行。我使用類似的方法來定義一個包含一個 puppetmaster 和幾個 puppet 代理的集群。
這是一個簡單的範例,假設這將適用於您的 smdw_config 主機。刪除 puppet 節並更改 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
順便說一句,如果可用,我通常會向提供程序添加調試和詳細選項。