From 5377fac7a83361fc8eb89143837c1d66d621c729 Mon Sep 17 00:00:00 2001 From: Scott Lowe Date: Tue, 5 Apr 2016 20:03:14 -0600 Subject: [PATCH 1/2] Modify for better multi-platform support Modify Vagrantfile for better multi-platform support. Fix errors/problems with setup script. Add necessary information to servers.yml. --- consul/Vagrantfile | 9 ++++----- consul/consul.sh | 6 +++--- consul/servers.yml | 9 ++++++--- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/consul/Vagrantfile b/consul/Vagrantfile index 8cdb84b..17b18ae 100644 --- a/consul/Vagrantfile +++ b/consul/Vagrantfile @@ -5,8 +5,6 @@ Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -30,7 +28,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Specify hostname and Vagrant box srv.vm.hostname = server['name'] - srv.vm.box = server['box'] + srv.vm.box = server['vmw_box'] # Assign an additional static private network srv.vm.network 'private_network', ip: server['priv_ip'] @@ -46,15 +44,16 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| srv.vm.provision 'shell', path: 'consul.sh' # Configure VMs with RAM and CPUs per settings in servers.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = server['ram'] vmw.vmx['numvcpus'] = server['vcpu'] end # srv.vm.provider vmware_fusion # Configure VMs with RAM and CPUs per settings in servers.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + srv.vm.provider 'virtualbox' do |vb, override| vb.memory = server['ram'] vb.cpus = server['vcpu'] + override.vm.box = server['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define end # servers.each diff --git a/consul/consul.sh b/consul/consul.sh index 7df0cad..b9637d2 100644 --- a/consul/consul.sh +++ b/consul/consul.sh @@ -17,11 +17,11 @@ fi if [[ ! -e /usr/local/bin/consul ]];then # Download Consul - curl -kLO https://dl.bintray.com/mitchellh/consul/0.5.2_linux_amd64.zip + curl -kLO https://releases.hashicorp.com/consul/0.5.2/consul_0.5.2_linux_amd64.zip # Decompress and remove Consul download - unzip 0.5.2_linux_amd64.zip - rm 0.5.2_linux_amd64.zip + unzip consul_0.5.2_linux_amd64.zip + rm consul_0.5.2_linux_amd64.zip # Move Consul binary to location in path sudo mv consul /usr/local/bin/ diff --git a/consul/servers.yml b/consul/servers.yml index d15854f..94e2562 100644 --- a/consul/servers.yml +++ b/consul/servers.yml @@ -1,16 +1,19 @@ --- - name: "consul-01" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.101 - name: "consul-02" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.102 - name: "consul-03" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.103 From f73b7ee34c6b6c97cbd1f932adeb22ef3c0e620f Mon Sep 17 00:00:00 2001 From: Scott Lowe Date: Tue, 5 Apr 2016 22:53:51 -0600 Subject: [PATCH 2/2] Improve multi-platform support Update Vagrantfile and associated data files (YAML and/or JSON) to provide better multi-platform support via provider overrides. --- consul-ansible/Vagrantfile | 9 +- consul-ansible/machines.yml | 9 +- coreos-cloudinit-toolbox/Vagrantfile | 9 +- coreos-cloudinit-toolbox/machines.yml | 3 +- debian-generic/Vagrantfile | 27 +++--- debian-generic/servers.yml | 3 +- docker-ipvlan-l3/Vagrantfile | 9 +- docker-ipvlan-l3/machines.yml | 6 +- docker-ipvlan/Vagrantfile | 9 +- docker-ipvlan/machines.yml | 6 +- docker-swarm-ha/Vagrantfile | 9 +- docker-swarm-ha/servers.yml | 18 ++-- lxc/Vagrantfile | 9 +- lxc/machines.yml | 3 +- lxd-ansible/Vagrantfile | 9 +- lxd-ansible/machines.yml | 3 +- lxd-shell/README.md | 0 lxd-shell/Vagrantfile | 31 +++---- lxd-shell/servers.yml | 3 +- ssh-bastion/Vagrantfile | 128 +++++++++++++------------- ssh-bastion/servers.yml | 12 ++- ubuntu-generic/Vagrantfile | 27 +++--- ubuntu-generic/servers.yml | 3 +- vagrant-json/Vagrantfile | 9 +- vagrant-json/machines.json | 9 +- 25 files changed, 189 insertions(+), 174 deletions(-) mode change 100755 => 100644 lxd-shell/README.md mode change 100755 => 100644 lxd-shell/Vagrantfile mode change 100755 => 100644 lxd-shell/servers.yml diff --git a/consul-ansible/Vagrantfile b/consul-ansible/Vagrantfile index f7de6d8..d19d0de 100644 --- a/consul-ansible/Vagrantfile +++ b/consul-ansible/Vagrantfile @@ -4,9 +4,7 @@ # Specify Vagrant version, Vagrant API version, and desired clone location Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -35,7 +33,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Don't check for box updates srv.vm.box_check_update = false srv.vm.hostname = machine['name'] - srv.vm.box = machine['box'] + srv.vm.box = machine['vmw_box'] # Configure default synced folder (disable by default) if machine['sync_disabled'] != nil @@ -50,7 +48,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # if machine['ip_addr'] # Configure CPU & RAM per settings in machines.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = machine['ram'] vmw.vmx['numvcpus'] = machine['vcpu'] if machine['nested'] == true @@ -59,9 +57,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in machines.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + 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 end # config.vm.define end # machines.each diff --git a/consul-ansible/machines.yml b/consul-ansible/machines.yml index d85da9d..43fdb94 100644 --- a/consul-ansible/machines.yml +++ b/consul-ansible/machines.yml @@ -1,16 +1,19 @@ --- - name: "consul-01" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" ip_addr: 192.168.100.101 - name: "consul-02" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" ip_addr: 192.168.100.102 - name: "consul-03" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" ip_addr: 192.168.100.103 diff --git a/coreos-cloudinit-toolbox/Vagrantfile b/coreos-cloudinit-toolbox/Vagrantfile index 8d43268..924adf3 100644 --- a/coreos-cloudinit-toolbox/Vagrantfile +++ b/coreos-cloudinit-toolbox/Vagrantfile @@ -4,9 +4,7 @@ # Specify Vagrant version, Vagrant API version, and Vagrant clone location Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml', 'fileutils', and 'erb' modules require 'yaml' @@ -33,7 +31,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Don't check for box updates srv.vm.box_check_update = false srv.vm.hostname = machine['name'] - srv.vm.box = machine['box'] + srv.vm.box = machine['vmw_box'] # Configure default synced folder (disable by default) if machine['sync_disabled'] != nil @@ -54,7 +52,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # if srv.vm.box == 'coreos-stable' # Configure CPU & RAM per settings in machines.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = machine['ram'] vmw.vmx['numvcpus'] = machine['vcpu'] if machine['nested'] == true @@ -63,9 +61,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in machines.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + 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 end # config.vm.define end # machines.each diff --git a/coreos-cloudinit-toolbox/machines.yml b/coreos-cloudinit-toolbox/machines.yml index 204f286..17ff80e 100644 --- a/coreos-cloudinit-toolbox/machines.yml +++ b/coreos-cloudinit-toolbox/machines.yml @@ -1,6 +1,7 @@ --- - name: "coreos-01" - box: "coreos-stable" + vmw_box: "coreos-stable" + vb_box: "coreos-stable" ram: "512" vcpu: "1" ip_addr: 192.168.100.100 diff --git a/debian-generic/Vagrantfile b/debian-generic/Vagrantfile index 3653f2c..1ebecc5 100644 --- a/debian-generic/Vagrantfile +++ b/debian-generic/Vagrantfile @@ -2,11 +2,9 @@ # vi: set ft=ruby : # Specify Vagrant version, Vagrant API version, and Vagrant clone location -Vagrant.require_version ">= 1.6.0" -VAGRANTFILE_API_VERSION = "2" -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' +Vagrant.require_version '>= 1.6.0' +VAGRANTFILE_API_VERSION = '2' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -22,26 +20,27 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Iterate through entries in YAML file to create VMs servers.each do |servers| - config.vm.define servers["name"] do |srv| + config.vm.define servers['name'] do |srv| # Don't check for box updates srv.vm.box_check_update = false - srv.vm.hostname = servers["name"] - srv.vm.box = servers["box"] + srv.vm.hostname = servers['name'] + srv.vm.box = servers['vmw_box'] # Disable default synced folder - srv.vm.synced_folder ".", "/vagrant", disabled: true + srv.vm.synced_folder '.', '/vagrant', disabled: true # Configure VMs with RAM and CPUs per servers.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| - vmw.vmx["memsize"] = servers["ram"] - vmw.vmx["numvcpus"] = servers["vcpu"] + srv.vm.provider 'vmware_fusion' do |vmw| + vmw.vmx['memsize'] = servers['ram'] + vmw.vmx['numvcpus'] = servers['vcpu'] end # srv.vm.provider vmware_fusion # Configure the VM with RAM and CPUs per servers.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| - vb.memory = servers["ram"] - vb.cpus = servers["vcpu"] + srv.vm.provider 'virtualbox' do |vb, override| + vb.memory = servers['ram'] + vb.cpus = servers['vcpu'] + override.vm.box = servers['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define end # servers.each diff --git a/debian-generic/servers.yml b/debian-generic/servers.yml index c5ee52a..2028226 100644 --- a/debian-generic/servers.yml +++ b/debian-generic/servers.yml @@ -1,5 +1,6 @@ --- - name: generic - box: dhoppe/debian-8.0.0-amd64-nocm + vmw_box: slowe/debian-81-x64 + vb_box: debian/jessie64 ram: 1024 vcpu: 1 diff --git a/docker-ipvlan-l3/Vagrantfile b/docker-ipvlan-l3/Vagrantfile index 71c1118..846c999 100644 --- a/docker-ipvlan-l3/Vagrantfile +++ b/docker-ipvlan-l3/Vagrantfile @@ -4,9 +4,7 @@ # Specify Vagrant version, Vagrant API version, and desired clone location Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -27,7 +25,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Don't check for box updates srv.vm.box_check_update = false srv.vm.hostname = machine['name'] - srv.vm.box = machine['box'] + srv.vm.box = machine['vmw_box'] # Disable default synced folder srv.vm.synced_folder '.', '/vagrant', disabled: true @@ -36,7 +34,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| srv.vm.network 'private_network', auto_config: false # Configure CPU & RAM per settings in machines.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = machine['ram'] vmw.vmx['numvcpus'] = machine['vcpu'] if machine['nested'] == true @@ -45,9 +43,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in machines.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + 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 'docker-01' diff --git a/docker-ipvlan-l3/machines.yml b/docker-ipvlan-l3/machines.yml index 45b1435..a2de7b4 100644 --- a/docker-ipvlan-l3/machines.yml +++ b/docker-ipvlan-l3/machines.yml @@ -1,9 +1,11 @@ --- - name: docker-01 - box: slowe/ubuntu-15.10-server-amd64 + vmw_box: slowe/ubuntu-15.10-server-amd64 + vb_box: ubuntu/wily64 ram: 1024 vcpu: 1 - name: docker-02 - box: slowe/ubuntu-15.10-server-amd64 + vmw_box: slowe/ubuntu-15.10-server-amd64 + vb_box: ubuntu/wily64 ram: 1024 vcpu: 1 diff --git a/docker-ipvlan/Vagrantfile b/docker-ipvlan/Vagrantfile index 2310df3..a60b0e7 100644 --- a/docker-ipvlan/Vagrantfile +++ b/docker-ipvlan/Vagrantfile @@ -4,9 +4,7 @@ # Specify Vagrant version, Vagrant API version, and desired clone location Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -27,7 +25,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Don't check for box updates srv.vm.box_check_update = false srv.vm.hostname = machine['name'] - srv.vm.box = machine['box'] + srv.vm.box = machine['vmw_box'] # Configure default synced folder (disable by default) if machine['sync_disabled'] != nil @@ -42,7 +40,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # if machine['ip_addr'] # Configure CPU & RAM per settings in machines.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = machine['ram'] vmw.vmx['numvcpus'] = machine['vcpu'] if machine['nested'] == true @@ -51,9 +49,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in machines.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + 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 'docker-01' diff --git a/docker-ipvlan/machines.yml b/docker-ipvlan/machines.yml index 6429513..1df604d 100644 --- a/docker-ipvlan/machines.yml +++ b/docker-ipvlan/machines.yml @@ -1,12 +1,14 @@ --- - name: docker-01 - box: slowe/ubuntu-15.10-server-amd64 + vmw_box: slowe/ubuntu-15.10-server-amd64 + vb_box: ubuntu/wily64 ram: 1024 vcpu: 1 priv_ip: true docker: true - name: remote-01 - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 priv_ip: true diff --git a/docker-swarm-ha/Vagrantfile b/docker-swarm-ha/Vagrantfile index e10c113..9470d6b 100644 --- a/docker-swarm-ha/Vagrantfile +++ b/docker-swarm-ha/Vagrantfile @@ -5,8 +5,6 @@ Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml', 'fileutils', and 'erb' modules require 'yaml' @@ -53,7 +51,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Specify hostname and Vagrant box srv.vm.hostname = server['name'] - srv.vm.box = server['box'] + srv.vm.box = server['vmw_box'] # Assign an additional static private network srv.vm.network 'private_network', ip: server['priv_ip'] @@ -78,15 +76,16 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # Configure VMs with RAM and CPUs per settings in servers.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = server['ram'] vmw.vmx['numvcpus'] = server['vcpu'] end # srv.vm.provider vmware_fusion # Configure VMs with RAM and CPUs per settings in servers.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + srv.vm.provider 'virtualbox' do |vb, override| vb.memory = server['ram'] vb.cpus = server['vcpu'] + override.vm.box = server['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define end # servers.each diff --git a/docker-swarm-ha/servers.yml b/docker-swarm-ha/servers.yml index fb27539..c501dd3 100644 --- a/docker-swarm-ha/servers.yml +++ b/docker-swarm-ha/servers.yml @@ -1,36 +1,42 @@ --- - name: "consul-01" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.101 role: "consul" - name: "consul-02" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.102 role: "consul" - name: "consul-03" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.103 role: "consul" - name: "docker-01" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.104 role: "docker" - name: "docker-02" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.105 role: "docker" - name: "docker-03" - box: "slowe/ubuntu-trusty-x64" + vmw_box: "slowe/ubuntu-trusty-x64" + vb_box: "ubuntu/trusty64" ram: "512" vcpu: "1" priv_ip: 192.168.100.106 diff --git a/lxc/Vagrantfile b/lxc/Vagrantfile index 00565fb..c69eca3 100644 --- a/lxc/Vagrantfile +++ b/lxc/Vagrantfile @@ -4,9 +4,7 @@ # Specify Vagrant version, Vagrant API version, and desired clone location Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -27,7 +25,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Don't check for box updates srv.vm.box_check_update = false srv.vm.hostname = machine['name'] - srv.vm.box = machine['box'] + srv.vm.box = machine['vmw_box'] # Configure default synced folder (disable by default) if machine['sync_disabled'] != nil @@ -42,7 +40,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # if machine['ip_addr'] # Configure CPU & RAM per settings in machines.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = machine['ram'] vmw.vmx['numvcpus'] = machine['vcpu'] if machine['nested'] == true @@ -51,9 +49,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in machines.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + 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 end # config.vm.define diff --git a/lxc/machines.yml b/lxc/machines.yml index 251fbed..37d924b 100644 --- a/lxc/machines.yml +++ b/lxc/machines.yml @@ -1,6 +1,7 @@ --- - name: lxc-01 - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 ip_addr: 192.168.100.100 diff --git a/lxd-ansible/Vagrantfile b/lxd-ansible/Vagrantfile index 00565fb..c69eca3 100644 --- a/lxd-ansible/Vagrantfile +++ b/lxd-ansible/Vagrantfile @@ -4,9 +4,7 @@ # Specify Vagrant version, Vagrant API version, and desired clone location Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -27,7 +25,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Don't check for box updates srv.vm.box_check_update = false srv.vm.hostname = machine['name'] - srv.vm.box = machine['box'] + srv.vm.box = machine['vmw_box'] # Configure default synced folder (disable by default) if machine['sync_disabled'] != nil @@ -42,7 +40,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # if machine['ip_addr'] # Configure CPU & RAM per settings in machines.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = machine['ram'] vmw.vmx['numvcpus'] = machine['vcpu'] if machine['nested'] == true @@ -51,9 +49,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in machines.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + 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 end # config.vm.define diff --git a/lxd-ansible/machines.yml b/lxd-ansible/machines.yml index bec2a7d..420ac09 100644 --- a/lxd-ansible/machines.yml +++ b/lxd-ansible/machines.yml @@ -1,6 +1,7 @@ --- - name: lxd-01 - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 ip_addr: 192.168.100.100 diff --git a/lxd-shell/README.md b/lxd-shell/README.md old mode 100755 new mode 100644 diff --git a/lxd-shell/Vagrantfile b/lxd-shell/Vagrantfile old mode 100755 new mode 100644 index baefee4..759c9a7 --- a/lxd-shell/Vagrantfile +++ b/lxd-shell/Vagrantfile @@ -2,17 +2,15 @@ # vi: set ft=ruby : # Specify Vagrant version, Vagrant API version, and Vagrant clone location -Vagrant.require_version ">= 1.6.0" -VAGRANTFILE_API_VERSION = "2" +Vagrant.require_version '>= 1.6.0' +VAGRANTFILE_API_VERSION = '2' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' # Read YAML file with VM details (box, CPU, and RAM) -servers = YAML.load_file('servers.yml') +servers = YAML.load_file(File.join(File.dirname(__FILE__), 'servers.yml')) # Create and configure the VMs Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -22,29 +20,30 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Iterate through entries in YAML file to create VMs servers.each do |servers| - config.vm.define servers["name"] do |srv| + config.vm.define servers['name'] do |srv| # Don't check for box updates srv.vm.box_check_update = false - srv.vm.hostname = servers["name"] - srv.vm.box = servers["box"] + srv.vm.hostname = servers['name'] + srv.vm.box = servers['vmw_box'] # Enable default synced folder - srv.vm.synced_folder ".", "/vagrant" + srv.vm.synced_folder '.', '/vagrant' # Perform final provisioning activities - srv.vm.provision "shell", path: "setup.sh", privileged: true + srv.vm.provision 'shell', path: 'setup.sh', privileged: true # Configure VMs with RAM and CPUs per settings in servers.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| - vmw.vmx["memsize"] = servers["ram"] - vmw.vmx["numvcpus"] = servers["vcpu"] + srv.vm.provider 'vmware_fusion' do |vmw| + vmw.vmx['memsize'] = servers['ram'] + vmw.vmx['numvcpus'] = servers['vcpu'] end # srv.vm.provider vmware_fusion # Configure VMs with RAM and CPUs per settings in servers.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| - vb.memory = servers["ram"] - vb.cpus = servers["vcpu"] + srv.vm.provider 'virtualbox' do |vb, override| + vb.memory = servers['ram'] + vb.cpus = servers['vcpu'] + override.vm.box = servers['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define end # servers.each diff --git a/lxd-shell/servers.yml b/lxd-shell/servers.yml old mode 100755 new mode 100644 index 2ba0494..112eb26 --- a/lxd-shell/servers.yml +++ b/lxd-shell/servers.yml @@ -1,5 +1,6 @@ --- - name: lxd-01 - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 diff --git a/ssh-bastion/Vagrantfile b/ssh-bastion/Vagrantfile index 1562917..5f57a53 100644 --- a/ssh-bastion/Vagrantfile +++ b/ssh-bastion/Vagrantfile @@ -2,10 +2,9 @@ # vi: set ft=ruby : # Specify Vagrant version, Vagrant API version, and Vagrant clone location -Vagrant.require_version ">= 1.6.0" -VAGRANTFILE_API_VERSION = "2" +Vagrant.require_version '>= 1.6.0' +VAGRANTFILE_API_VERSION = '2' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -21,86 +20,87 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Iterate through entries in YAML file to create VMs servers.each do |servers| - config.vm.define servers["name"] do |srv| + config.vm.define servers['name'] do |srv| # Don't check for box updates srv.vm.box_check_update = false - srv.vm.hostname = servers["name"] - srv.vm.box = servers["box"] + srv.vm.hostname = servers['name'] + srv.vm.box = servers['vmw_box'] # Configure default synced folder (disable by default) - if servers["sync_disabled"] != nil - srv.vm.synced_folder ".", "/vagrant", disabled: servers["sync_disabled"] + if servers['sync_disabled'] != nil + srv.vm.synced_folder '.', '/vagrant', disabled: servers['sync_disabled'] else - srv.vm.synced_folder ".", "/vagrant", disabled: true - end #if servers["sync_disabled"] + srv.vm.synced_folder '.', '/vagrant', disabled: true + end #if servers['sync_disabled'] # Assign additional private network, if specified in servers.yml - if servers["ip_addr"] != nil - srv.vm.network "private_network", ip: servers["ip_addr"] - end # if servers["ip_addr"] + if servers['ip_addr'] != nil + srv.vm.network 'private_network', ip: servers['ip_addr'] + end # if servers['ip_addr'] # Configure CPU & RAM per settings in servers.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| - vmw.vmx["memsize"] = servers["ram"] - vmw.vmx["numvcpus"] = servers["vcpu"] - if servers["nested"] == true - vmw.vmx["vhv.enable"] = "TRUE" - end #if servers["nested"] + srv.vm.provider 'vmware_fusion' do |vmw| + vmw.vmx['memsize'] = servers['ram'] + vmw.vmx['numvcpus'] = servers['vcpu'] + if servers['nested'] == true + vmw.vmx['vhv.enable'] = 'TRUE' + end #if servers['nested'] end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in servers.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| - vb.memory = servers["ram"] - vb.cpus = servers["vcpu"] + srv.vm.provider 'virtualbox' do |vb, override| + vb.memory = servers['ram'] + vb.cpus = servers['vcpu'] + override.vm.box = servers['vb_box'] end # srv.vm.provider virtualbox # Provision key pairs according to VM name - # If "client" VM, copy in all keys - if servers["name"] == "client" - srv.vm.provision "file", source: "bastion_rsa", - destination: "/home/vagrant/.ssh/bastion_rsa" - srv.vm.provision "file", source: "bastion_rsa.pub", - destination: "/home/vagrant/.ssh/bastion_rsa.pub" - srv.vm.provision "file", source: "remote_rsa", - destination: "/home/vagrant/.ssh/remote_rsa" - srv.vm.provision "file", source: "remote_rsa.pub", - destination: "/home/vagrant/.ssh/remote_rsa.pub" - srv.vm.provision "file", source: "client-ssh-config", - destination: "/home/vagrant/.ssh/config" - end # if "client" + # If 'client' VM, copy in all keys + if servers['name'] == 'client' + srv.vm.provision 'file', source: 'bastion_rsa', + destination: '/home/vagrant/.ssh/bastion_rsa' + srv.vm.provision 'file', source: 'bastion_rsa.pub', + destination: '/home/vagrant/.ssh/bastion_rsa.pub' + srv.vm.provision 'file', source: 'remote_rsa', + destination: '/home/vagrant/.ssh/remote_rsa' + srv.vm.provision 'file', source: 'remote_rsa.pub', + destination: '/home/vagrant/.ssh/remote_rsa.pub' + srv.vm.provision 'file', source: 'client-ssh-config', + destination: '/home/vagrant/.ssh/config' + end # if 'client' - # If "bastion" VM, echo bastion_rsa.pub to authorized_keys - if servers["name"] == "bastion" - srv.vm.provision "file", source: "bastion_rsa.pub", - destination: "/home/vagrant/bastion_rsa.pub" - srv.vm.provision "shell", - inline: "cat /home/vagrant/bastion_rsa.pub >> /home/vagrant/.ssh/authorized_keys" - srv.vm.provision "shell", inline: "rm /home/vagrant/bastion_rsa.pub" - srv.vm.provision "file", source: "bastion-hosts", - destination: "/home/vagrant/bastion-hosts" - srv.vm.provision "shell", - inline: "cat /home/vagrant/bastion-hosts >> /etc/hosts", privileged: "true" - srv.vm.provision "shell", inline: "rm /home/vagrant/bastion-hosts" - end # if "bastion" + # If 'bastion' VM, echo bastion_rsa.pub to authorized_keys + if servers['name'] == 'bastion' + srv.vm.provision 'file', source: 'bastion_rsa.pub', + destination: '/home/vagrant/bastion_rsa.pub' + srv.vm.provision 'shell', + inline: 'cat /home/vagrant/bastion_rsa.pub >> /home/vagrant/.ssh/authorized_keys' + srv.vm.provision 'shell', inline: 'rm /home/vagrant/bastion_rsa.pub' + srv.vm.provision 'file', source: 'bastion-hosts', + destination: '/home/vagrant/bastion-hosts' + srv.vm.provision 'shell', + inline: 'cat /home/vagrant/bastion-hosts >> /etc/hosts', privileged: 'true' + srv.vm.provision 'shell', inline: 'rm /home/vagrant/bastion-hosts' + end # if 'bastion' - # If "remote1" VM, echo remote_rsa.pub to authorized_keys - if servers["name"] == "remote1" - srv.vm.provision "file", source: "remote_rsa.pub", - destination: "/home/vagrant/remote_rsa.pub" - srv.vm.provision "shell", - inline: "cat /home/vagrant/remote_rsa.pub >> /home/vagrant/.ssh/authorized_keys" - srv.vm.provision "shell", inline: "rm /home/vagrant/remote_rsa.pub" - end # if "remote1" + # If 'remote1' VM, echo remote_rsa.pub to authorized_keys + if servers['name'] == 'remote1' + srv.vm.provision 'file', source: 'remote_rsa.pub', + destination: '/home/vagrant/remote_rsa.pub' + srv.vm.provision 'shell', + inline: 'cat /home/vagrant/remote_rsa.pub >> /home/vagrant/.ssh/authorized_keys' + srv.vm.provision 'shell', inline: 'rm /home/vagrant/remote_rsa.pub' + end # if 'remote1' - # If "remote2" VM, echo remote_rsa.pub to authorized_keys - if servers["name"] == "remote2" - srv.vm.provision "file", source: "remote_rsa.pub", - destination: "/home/vagrant/remote_rsa.pub" - srv.vm.provision "shell", - inline: "cat /home/vagrant/remote_rsa.pub >> /home/vagrant/.ssh/authorized_keys" - srv.vm.provision "shell", inline: "rm /home/vagrant/remote_rsa.pub" - end # if "remote2" + # If 'remote2' VM, echo remote_rsa.pub to authorized_keys + if servers['name'] == 'remote2' + srv.vm.provision 'file', source: 'remote_rsa.pub', + destination: '/home/vagrant/remote_rsa.pub' + srv.vm.provision 'shell', + inline: 'cat /home/vagrant/remote_rsa.pub >> /home/vagrant/.ssh/authorized_keys' + srv.vm.provision 'shell', inline: 'rm /home/vagrant/remote_rsa.pub' + end # if 'remote2' end # config.vm.define end # servers.each end # Vagrant.configure diff --git a/ssh-bastion/servers.yml b/ssh-bastion/servers.yml index 4305692..dc533ca 100644 --- a/ssh-bastion/servers.yml +++ b/ssh-bastion/servers.yml @@ -1,20 +1,24 @@ --- - name: client - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 - name: bastion - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 ip_addr: 10.100.60.1 - name: remote1 - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 ip_addr: 10.100.60.2 - name: remote2 - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 512 vcpu: 1 ip_addr: 10.100.60.3 diff --git a/ubuntu-generic/Vagrantfile b/ubuntu-generic/Vagrantfile index 378e6e1..553358d 100644 --- a/ubuntu-generic/Vagrantfile +++ b/ubuntu-generic/Vagrantfile @@ -2,11 +2,9 @@ # vi: set ft=ruby : # Specify Vagrant version, Vagrant API version, and Vagrant clone location -Vagrant.require_version ">= 1.6.0" -VAGRANTFILE_API_VERSION = "2" -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' +Vagrant.require_version '>= 1.6.0' +VAGRANTFILE_API_VERSION = '2' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'yaml' module require 'yaml' @@ -22,26 +20,27 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Iterate through entries in YAML file to create VMs servers.each do |servers| - config.vm.define servers["name"] do |srv| + config.vm.define servers['name'] do |srv| # Don't check for box updates srv.vm.box_check_update = false - srv.vm.hostname = servers["name"] - srv.vm.box = servers["box"] + srv.vm.hostname = servers['name'] + srv.vm.box = servers['vmw_box'] # Disable default synced folder - srv.vm.synced_folder ".", "/vagrant", disabled: true + srv.vm.synced_folder '.', '/vagrant', disabled: true # Configure VMs with RAM and CPUs per settings in servers.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| - vmw.vmx["memsize"] = servers["ram"] - vmw.vmx["numvcpus"] = servers["vcpu"] + srv.vm.provider 'vmware_fusion' do |vmw| + vmw.vmx['memsize'] = servers['ram'] + vmw.vmx['numvcpus'] = servers['vcpu'] end # srv.vm.provider vmware_fusion # Configure VMs with RAM and CPUs per settings in servers.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| - vb.memory = servers["ram"] - vb.cpus = servers["vcpu"] + srv.vm.provider 'virtualbox' do |vb, override| + vb.memory = servers['ram'] + vb.cpus = servers['vcpu'] + override.vm.box = servers['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define end # servers.each diff --git a/ubuntu-generic/servers.yml b/ubuntu-generic/servers.yml index 7fe4e47..3eaf5ae 100644 --- a/ubuntu-generic/servers.yml +++ b/ubuntu-generic/servers.yml @@ -1,5 +1,6 @@ --- - name: generic - box: slowe/ubuntu-trusty-x64 + vmw_box: slowe/ubuntu-trusty-x64 + vb_box: ubuntu/trusty64 ram: 1024 vcpu: 1 diff --git a/vagrant-json/Vagrantfile b/vagrant-json/Vagrantfile index 5f4f55f..4e7ef57 100644 --- a/vagrant-json/Vagrantfile +++ b/vagrant-json/Vagrantfile @@ -4,9 +4,7 @@ # Specify Vagrant version, Vagrant API version, and desired clone location Vagrant.require_version '>= 1.6.0' VAGRANTFILE_API_VERSION = '2' -ENV['VAGRANT_DEFAULT_PROVIDER'] = 'vmware_fusion' ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' -#ENV['VAGRANT_DEFAULT_PROVIDER'] = 'virtualbox' # Require 'json' module require 'json' @@ -27,7 +25,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Don't check for box updates srv.vm.box_check_update = false srv.vm.hostname = machine['name'] - srv.vm.box = machine['box'] + srv.vm.box = machine['vmw_box'] # Configure default synced folder (disable by default) if machine['sync_disabled'] != nil @@ -42,7 +40,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # if machine['ip_addr'] # Configure CPU & RAM per settings in machines.yml (Fusion) - srv.vm.provider :vmware_fusion do |vmw| + srv.vm.provider 'vmware_fusion' do |vmw| vmw.vmx['memsize'] = machine['ram'] vmw.vmx['numvcpus'] = machine['vcpu'] if machine['nested'] == true @@ -51,9 +49,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end # srv.vm.provider vmware_fusion # Configure CPU & RAM per settings in machines.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| + 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 end # config.vm.define end # machines.each diff --git a/vagrant-json/machines.json b/vagrant-json/machines.json index d2109df..e0e8439 100644 --- a/vagrant-json/machines.json +++ b/vagrant-json/machines.json @@ -1,7 +1,8 @@ [ { "name": "jessie", - "box": "slowe/debian-81-x64", + "vmw_box": "slowe/debian-81-x64", + "vb_box": "debian/jessie64", "ram": 512, "vcpu": 1, "ip_addr": "192.168.100.101", @@ -10,7 +11,8 @@ { "name": "trusty", - "box": "slowe/ubuntu-trusty-x64", + "vmw_box": "slowe/ubuntu-trusty-x64", + "vb_box": "ubuntu/trusty64", "ram": 512, "vcpu": 1, "ip_addr": "192.168.100.102", @@ -19,7 +21,8 @@ { "name": "precise", - "box": "slowe/ubuntu-precise-x64", + "vmw_box": "slowe/ubuntu-precise-x64", + "vb_box": "ubuntu/precise64", "ram": 512, "vcpu": 1, "ip_addr": "192.168.100.103"