61 lines
1.6 KiB
Ruby
61 lines
1.6 KiB
Ruby
# -*- mode: ruby -*-
|
|
# vi: set ft=ruby :
|
|
require 'yaml'
|
|
|
|
nodes = YAML.load_file("onvm/conf/nodes.conf.yml")
|
|
ids = YAML.load_file("onvm/conf/ids.conf.yml")
|
|
|
|
Vagrant.configure("2") do |config|
|
|
config.vm.box = "tknerr/managed-server-dummy"
|
|
config.ssh.username = ids['username']
|
|
config.ssh.password = ids['password']
|
|
|
|
config.vm.synced_folder ".", "/vagrant", disabled: true
|
|
config.vm.synced_folder "onvm", "/onvm", disabled: false, create: true
|
|
|
|
|
|
sync_cfg = nodes['synchfolders']
|
|
|
|
lnodes = nodes['ctlnodes']
|
|
if lnodes
|
|
lnodes.each do |key|
|
|
config.vm.define "#{key}" do |node|
|
|
nodekey = nodes['logical2physical'][key]
|
|
|
|
if sync_cfg[key]
|
|
node.vm.synced_folder sync_cfg[key]['source'],
|
|
sync_cfg[key]['target'], disabled: false, create: true
|
|
end
|
|
|
|
node.vm.provider :managed do |managed|
|
|
managed.server = nodes[nodekey]['eth0']
|
|
end
|
|
|
|
node.vm.provision "#{key}-install", type: "shell" do |s|
|
|
s.path = "onvm/scripts/install-" + key + ".sh"
|
|
s.args = ids['sys_password'] + ' ' + nodes[nodekey]['eth0']
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
# agent node setup
|
|
lnodes = nodes['agentes']
|
|
if lnodes
|
|
lnodes.each do |key|
|
|
config.vm.define "#{key}" do |node|
|
|
node.vm.provider :managed do |managed|
|
|
managed.server = nodes[key]['eth0']
|
|
end
|
|
|
|
node.vm.provision "#{key}-install", type: "shell" do |s|
|
|
s.path = "onvm/scripts/install-agent.sh"
|
|
s.args = ids['sys_password'] + " " + nodes[key]['eth0']
|
|
end
|
|
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|