scottslowe-learning-tools/ovs-multi-br/Vagrantfile
Scott S. Lowe e7f983ddda Add new environment for working with multiple OVS bridges
Add Libvirt XML definitions, Ansible configuration file and playbook, YAML data file, README, and Vagrantfile for an environment enabling users to easily experiment with multi-bridge OVS configurations. Instructions are not yet fully complete. Also tracking a potential bug in the openvswitch_port Ansible module used.
2016-06-29 17:45:24 -06:00

62 lines
2 KiB
Ruby

# -*- mode: ruby -*-
# vi: set ft=ruby :
# Specify Vagrant version and Vagrant API version
Vagrant.require_version '>= 1.6.0'
VAGRANTFILE_API_VERSION = '2'
# Require 'yaml' module
require 'yaml'
# Read YAML file with VM details (box, CPU, and RAM)
machines = YAML.load_file(File.join(File.dirname(__FILE__), 'machines.yml'))
# Create and configure the VMs
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Always use Vagrant's default insecure key
config.ssh.insert_key = false
# Iterate through entries in YAML file to create VMs
machines.each do |machine|
config.vm.define machine['name'] do |srv|
# Don't check for box updates
srv.vm.box_check_update = false
srv.vm.hostname = machine['name']
# Set box to VMware Fusion box by default
srv.vm.box = machine['vmw_box']
# Disable default synced folder
srv.vm.synced_folder '.', '/vagrant', disabled: true
# Assign additional network if machine is noted as hypervisor
if machine['hypervisor'] == true
srv.vm.network 'private_network', ip: '192.168.101.2'
srv.vm.network 'private_network', ip: '192.168.102.2'
end # if machine['hypervisor']
# Configure VMs with RAM and CPUs per machines.yml (Fusion)
srv.vm.provider 'vmware_fusion' do |vmw|
vmw.vmx['memsize'] = machine['ram']
vmw.vmx['numvcpus'] = machine['vcpu']
if machine['hypervisor'] == true
vmw.vmx['vhv.enable'] = 'TRUE'
end # if machine['hypervisor']
end # srv.vm.provider vmware_fusion
# Configure the VM with RAM and CPUs per machines.yml (VirtualBox)
srv.vm.provider 'virtualbox' do |vb, override|
vb.memory = machine['ram']
vb.cpus = machine['vcpu']
override.vm.box = machine['vb_box']
end # srv.vm.provider virtualbox
# Provision with Ansible
config.vm.provision 'ansible' do |ansible|
ansible.playbook = 'provision.yml'
end # config.vm.provision
end # config.vm.define
end # machines.each
end # Vagrant.configure