From e7723290efbb31b8215a91bf75a85d5eca201ed7 Mon Sep 17 00:00:00 2001 From: "Scott S. Lowe" Date: Wed, 14 Sep 2016 16:47:11 -0600 Subject: [PATCH] Streamline file naming standards, add multi-platform support Continue standardizing on `machines.yml` instead of `servers.yml` for external data file. Add multi-platform support to environments via provider overrides. --- consul/Vagrantfile | 30 +++++----- consul/{servers.yml => machines.yml} | 0 debian-generic/Vagrantfile | 26 ++++---- debian-generic/{servers.yml => machines.yml} | 2 +- photon-cloudinit/Vagrantfile | 62 ++++++++++---------- photon-cloudinit/machines.yml | 6 ++ photon-cloudinit/servers.yml | 5 -- photon/Vagrantfile | 28 ++++----- photon/{servers.yml => machines.yml} | 0 ubuntu-generic/Vagrantfile | 26 ++++---- ubuntu-generic/{servers.yml => machines.yml} | 2 +- 11 files changed, 93 insertions(+), 94 deletions(-) rename consul/{servers.yml => machines.yml} (100%) rename debian-generic/{servers.yml => machines.yml} (83%) create mode 100644 photon-cloudinit/machines.yml delete mode 100644 photon-cloudinit/servers.yml rename photon/{servers.yml => machines.yml} (100%) rename ubuntu-generic/{servers.yml => machines.yml} (84%) diff --git a/consul/Vagrantfile b/consul/Vagrantfile index 17b18ae..fbd20b6 100644 --- a/consul/Vagrantfile +++ b/consul/Vagrantfile @@ -10,8 +10,8 @@ ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' require 'yaml' # Read YAML file with VM details (box, CPU, RAM, IP addresses) -# Be sure to edit servers.yml to provide correct IP addresses -servers = YAML.load_file(File.join(File.dirname(__FILE__), 'servers.yml')) +# Be sure to edit machines.yml to provide correct IP addresses +machines = YAML.load_file(File.join(File.dirname(__FILE__), 'machines.yml')) # Create and configure the VMs Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -20,18 +20,18 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.ssh.insert_key = false # Iterate through entries in YAML file to create VMs - servers.each do |server| - config.vm.define server['name'] do |srv| + machines.each do |machine| + config.vm.define machine['name'] do |srv| # Don't check for box updates srv.vm.box_check_update = false # Specify hostname and Vagrant box - srv.vm.hostname = server['name'] - srv.vm.box = server['vmw_box'] + srv.vm.hostname = machine['name'] + srv.vm.box = machine['vmw_box'] # Assign an additional static private network - srv.vm.network 'private_network', ip: server['priv_ip'] + srv.vm.network 'private_network', ip: machine['priv_ip'] # Specify default synced folder; requires VMware Tools srv.vm.synced_folder '.', '/vagrant', disabled: true @@ -43,18 +43,18 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Provision consul to the VMs srv.vm.provision 'shell', path: 'consul.sh' - # Configure VMs with RAM and CPUs per settings in servers.yml (Fusion) + # Configure VMs with RAM and CPUs per settings in machines.yml (Fusion) srv.vm.provider 'vmware_fusion' do |vmw| - vmw.vmx['memsize'] = server['ram'] - vmw.vmx['numvcpus'] = server['vcpu'] + vmw.vmx['memsize'] = machine['ram'] + vmw.vmx['numvcpus'] = machine['vcpu'] end # srv.vm.provider vmware_fusion - # Configure VMs with RAM and CPUs per settings in servers.yml (VirtualBox) + # Configure VMs with RAM and CPUs per settings in machines.yml (VirtualBox) srv.vm.provider 'virtualbox' do |vb, override| - vb.memory = server['ram'] - vb.cpus = server['vcpu'] - override.vm.box = server['vb_box'] + vb.memory = machine['ram'] + vb.cpus = machine['vcpu'] + override.vm.box = machine['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define - end # servers.each + end # machines.each end # Vagrant.configure diff --git a/consul/servers.yml b/consul/machines.yml similarity index 100% rename from consul/servers.yml rename to consul/machines.yml diff --git a/debian-generic/Vagrantfile b/debian-generic/Vagrantfile index 1ebecc5..8e45c48 100644 --- a/debian-generic/Vagrantfile +++ b/debian-generic/Vagrantfile @@ -10,7 +10,7 @@ ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' require 'yaml' # Read YAML file with VM details (box, CPU, and RAM) -servers = YAML.load_file(File.join(File.dirname(__FILE__), 'servers.yml')) +machines = YAML.load_file(File.join(File.dirname(__FILE__), 'machines.yml')) # Create and configure the VMs Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -19,29 +19,29 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.ssh.insert_key = false # Iterate through entries in YAML file to create VMs - servers.each do |servers| - config.vm.define servers['name'] do |srv| + 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 = servers['name'] - srv.vm.box = servers['vmw_box'] + srv.vm.hostname = machine['name'] + srv.vm.box = machine['vmw_box'] # Disable default synced folder srv.vm.synced_folder '.', '/vagrant', disabled: true - # Configure VMs with RAM and CPUs per servers.yml (Fusion) + # Configure VMs with RAM and CPUs per machines.yml (Fusion) srv.vm.provider 'vmware_fusion' do |vmw| - vmw.vmx['memsize'] = servers['ram'] - vmw.vmx['numvcpus'] = servers['vcpu'] + vmw.vmx['memsize'] = machine['ram'] + vmw.vmx['numvcpus'] = machine['vcpu'] end # srv.vm.provider vmware_fusion - # Configure the VM with RAM and CPUs per servers.yml (VirtualBox) + # Configure the VM with RAM and CPUs per machines.yml (VirtualBox) srv.vm.provider 'virtualbox' do |vb, override| - vb.memory = servers['ram'] - vb.cpus = servers['vcpu'] - override.vm.box = servers['vb_box'] + vb.memory = machine['ram'] + vb.cpus = machine['vcpu'] + override.vm.box = machine['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define - end # servers.each + end # machines.each end # Vagrant.configure diff --git a/debian-generic/servers.yml b/debian-generic/machines.yml similarity index 83% rename from debian-generic/servers.yml rename to debian-generic/machines.yml index 2028226..1c3bbc5 100644 --- a/debian-generic/servers.yml +++ b/debian-generic/machines.yml @@ -1,5 +1,5 @@ --- -- name: generic +- name: jessie vmw_box: slowe/debian-81-x64 vb_box: debian/jessie64 ram: 1024 diff --git a/photon-cloudinit/Vagrantfile b/photon-cloudinit/Vagrantfile index 520d732..2077c6d 100644 --- a/photon-cloudinit/Vagrantfile +++ b/photon-cloudinit/Vagrantfile @@ -2,66 +2,64 @@ # vi: set ft=ruby : # Specify Vagrant version, Vagrant API version, and Vagrant clone location -# Adjust commented lines to specify provider -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' -# Read YAML file to get VM configuration information +# Read YAML file with VM details (box, CPU, and RAM) # Edit servers.yml to change VM configuration details -servers = YAML.load_file(File.join(File.dirname(__FILE__), 'servers.yml')) +machines = YAML.load_file(File.join(File.dirname(__FILE__), 'machines.yml')) # Look for user-data and meta-data files in same directory -USER_DATA = File.join(File.dirname(__FILE__), "user-data") -META_DATA = File.join(File.dirname(__FILE__), "meta-data") +USER_DATA = File.join(File.dirname(__FILE__), 'user-data') +META_DATA = File.join(File.dirname(__FILE__), 'meta-data') # Create and configure the VMs Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - # Use Vagrant's default insecure SSH key + # Always use Vagrant's default insecure key config.ssh.insert_key = false # Iterate through entries in YAML file to create VMs - servers.each do |servers| + machines.each do |machine| - # Configure the VMs per details in servers.yml - config.vm.define servers["name"] do |srv| + # Configure the VMs per details in machines.yml + config.vm.define machine['name'] do |srv| # Don't check for box updates srv.vm.box_check_update = false # Specify the hostname of the VM - srv.vm.hostname = servers["name"] + srv.vm.hostname = machine['name'] - # Specify the Vagrant box to use - srv.vm.box = servers["box"] + # Specify the Vagrant box to use (use VMware box by default) + srv.vm.box = machine['vmw_box'] # Disable default synced folder (not supported with Photon) - 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"] - end # srv.vm.provider vmware_fusion + # 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'] + end # srv.vm.provider 'vmware_fusion' - # Configure VMs with RAM and CPUs per servers.yml (VirtualBox) - srv.vm.provider :virtualbox do |vb| - vb.memory = servers["ram"] - vb.cpus = servers["vcpu"] - end # srv.vm.provider virtualbox + # Configure VMs with RAM and CPU 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' # Configure Photon boxes to use cloud-init - if srv.vm.box == "vmware/photon" - srv.vm.provision "file", source: "#{USER_DATA}", destination: "/home/vagrant/user-data" - srv.vm.provision "file", source: "#{META_DATA}", destination: "/home/vagrant/meta-data" - srv.vm.provision "shell", path: "setup.sh", privileged: true + if srv.vm.box == 'vmware/photon' + srv.vm.provision 'file', source: "#{USER_DATA}", destination: '/home/vagrant/user-data' + srv.vm.provision 'file', source: "#{META_DATA}", destination: '/home/vagrant/meta-data' + srv.vm.provision 'shell', path: 'setup.sh', privileged: true end # if srv.vm.box end # config.vm.define - end # servers.each + end # machines.each end # Vagrant.configure diff --git a/photon-cloudinit/machines.yml b/photon-cloudinit/machines.yml new file mode 100644 index 0000000..bac8cf3 --- /dev/null +++ b/photon-cloudinit/machines.yml @@ -0,0 +1,6 @@ +--- +- name: photon-01 + vmw_box: vmware/photon + vb_box: vmware/photon + ram: "512" + vcpu: "1" diff --git a/photon-cloudinit/servers.yml b/photon-cloudinit/servers.yml deleted file mode 100644 index 31ef4e6..0000000 --- a/photon-cloudinit/servers.yml +++ /dev/null @@ -1,5 +0,0 @@ ---- -- name: photon-01 - box: vmware/photon - ram: "512" - vcpu: "1" diff --git a/photon/Vagrantfile b/photon/Vagrantfile index b4202f4..7224c1f 100644 --- a/photon/Vagrantfile +++ b/photon/Vagrantfile @@ -11,7 +11,7 @@ require 'yaml' # Read YAML file with VM details (box, CPU, and RAM) # Edit servers.yml to change VM configuration details -servers = YAML.load_file(File.join(File.dirname(__FILE__), 'servers.yml')) +machines = YAML.load_file(File.join(File.dirname(__FILE__), 'machines.yml')) # Create and configure the VMs Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -20,35 +20,35 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.ssh.insert_key = false # Iterate through entries in YAML file to create VMs - servers.each do |servers| + machines.each do |machine| - # Configure the VMs per details in servers.yml - config.vm.define servers['name'] do |srv| + # Configure the VMs per details in machines.yml + config.vm.define machine['name'] do |srv| # Don't check for box updates srv.vm.box_check_update = false # Specify the hostname of the VM - srv.vm.hostname = servers['name'] + srv.vm.hostname = machine['name'] # Specify the Vagrant box to use (use VMware box by default) - srv.vm.box = servers['vmw_box'] + srv.vm.box = machine['vmw_box'] # Disable default synced folder (not supported with Photon) srv.vm.synced_folder '.', '/vagrant', disabled: true - # Configure VMs with RAM and CPUs per servers.yml (Fusion) + # Configure VMs with RAM and CPUs per machines.yml (Fusion) srv.vm.provider 'vmware_fusion' do |vmw| - vmw.vmx['memsize'] = servers['ram'] - vmw.vmx['numvcpus'] = servers['vcpu'] + vmw.vmx['memsize'] = machine['ram'] + vmw.vmx['numvcpus'] = machine['vcpu'] end # srv.vm.provider 'vmware_fusion' - # Configure VMs with RAM and CPU per servers.yml (VirtualBox) + # Configure VMs with RAM and CPU per machines.yml (VirtualBox) srv.vm.provider 'virtualbox' do |vb, override| - vb.memory = servers['ram'] - vb.cpus = servers['vcpu'] - override.vm.box = servers['vb_box'] + vb.memory = machine['ram'] + vb.cpus = machine['vcpu'] + override.vm.box = machine['vb_box'] end # srv.vm.provider 'virtualbox' end # config.vm.define - end # servers.each + end # machines.each end # Vagrant.configure diff --git a/photon/servers.yml b/photon/machines.yml similarity index 100% rename from photon/servers.yml rename to photon/machines.yml diff --git a/ubuntu-generic/Vagrantfile b/ubuntu-generic/Vagrantfile index 553358d..543a2e9 100644 --- a/ubuntu-generic/Vagrantfile +++ b/ubuntu-generic/Vagrantfile @@ -10,7 +10,7 @@ ENV['VAGRANT_VMWARE_CLONE_DIRECTORY'] = '~/.vagrant' require 'yaml' # Read YAML file with VM details (box, CPU, and RAM) -servers = YAML.load_file(File.join(File.dirname(__FILE__), 'servers.yml')) +machines = YAML.load_file(File.join(File.dirname(__FILE__), 'machines.yml')) # Create and configure the VMs Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| @@ -19,29 +19,29 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| config.ssh.insert_key = false # Iterate through entries in YAML file to create VMs - servers.each do |servers| - config.vm.define servers['name'] do |srv| + 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 = servers['name'] - srv.vm.box = servers['vmw_box'] + srv.vm.hostname = machine['name'] + srv.vm.box = machine['vmw_box'] # Disable default synced folder srv.vm.synced_folder '.', '/vagrant', disabled: true - # Configure VMs with RAM and CPUs per settings in servers.yml (Fusion) + # Configure VMs with RAM and CPUs per settings in machines.yml (Fusion) srv.vm.provider 'vmware_fusion' do |vmw| - vmw.vmx['memsize'] = servers['ram'] - vmw.vmx['numvcpus'] = servers['vcpu'] + vmw.vmx['memsize'] = machine['ram'] + vmw.vmx['numvcpus'] = machine['vcpu'] end # srv.vm.provider vmware_fusion - # Configure VMs with RAM and CPUs per settings in servers.yml (VirtualBox) + # Configure VMs with RAM and CPUs per settings in machines.yml (VirtualBox) srv.vm.provider 'virtualbox' do |vb, override| - vb.memory = servers['ram'] - vb.cpus = servers['vcpu'] - override.vm.box = servers['vb_box'] + vb.memory = machine['ram'] + vb.cpus = machine['vcpu'] + override.vm.box = machine['vb_box'] end # srv.vm.provider virtualbox end # config.vm.define - end # servers.each + end # machines.each end # Vagrant.configure diff --git a/ubuntu-generic/servers.yml b/ubuntu-generic/machines.yml similarity index 84% rename from ubuntu-generic/servers.yml rename to ubuntu-generic/machines.yml index 3eaf5ae..5d575ef 100644 --- a/ubuntu-generic/servers.yml +++ b/ubuntu-generic/machines.yml @@ -1,5 +1,5 @@ --- -- name: generic +- name: trusty vmw_box: slowe/ubuntu-trusty-x64 vb_box: ubuntu/trusty64 ram: 1024