Vagrantfile #3

  • //
  • guest/
  • perforce_software/
  • helix-installer/
  • main/
  • test/
  • Vagrantfile
  • View
  • Commits
  • Open Download .zip Download (2 KB)
# -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

our_domain = "p4demo.com"
helix_installer_config = (JSON.parse(File.read("helix_installer_test.json")))

class SDPError < Vagrant::Errors::VagrantError
  error_key "SDP Configuration error"
end
if !helix_installer_config.has_key?("oses")
  raise SDPError.new("Please define boxes in JSON file")
end

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  if Vagrant.has_plugin?("vagrant-hostmanager")
    config.hostmanager.enabled = true
    config.hostmanager.manage_host = true
    config.hostmanager.ignore_private_ip = false
    config.hostmanager.include_offline = true
  end

  helix_installer_config['oses'].each do |os|
    osname = os['osname']
    os['nodes'].each do |node|
      hostname = "#{node[':nodename']}"
      os_bootstrap = "bootstrap-linux.sh"
      config.vm.define hostname.to_sym do |machine|
        if Vagrant.has_plugin?("vagrant-cachier")
          machine.cache.scope = :box
        end
        if Vagrant.has_plugin?("vagrant-vbguest")
          config.vbguest.auto_update = false
        end
        machine.vm.box = os['box']
        machine.vm.box_url =  os['box_url']
        # Set the root password to 'vagrant'
        machine.vm.provision "shell", inline: "echo 'root:vagrant' | sudo chpasswd"

        # OS specific and common bootstrap/provisioning
        machine.vm.synced_folder "/pub/helix-installer/dev", "/helix-installer"
        machine.vm.provision :shell, :path => os_bootstrap
        machine.vm.network :private_network, ip: node[':ip']
        if node.has_key?(":forwarded_port")
            ports = node[':forwarded_port']
	        machine.vm.network :forwarded_port, guest: ports['guest'], host: ports['host']
	    end
        machine.vm.hostname = hostname + "." + our_domain
        if Vagrant.has_plugin?("vagrant-hostmanager")
            machine.hostmanager.aliases = ["#{hostname}.localdomain", "#{hostname}"]
        end
      end
    end
  end

end
# Change User Description Committed
#8 27427 C. Thomas Tyler Released SDP 2021.2.27425 (2021/02/09).
Copy Up using 'p4 copy -r -b perforce_software-helix-installer-dev'.
#7 26831 C. Thomas Tyler Released HelixInstaller/MultiArch/2020.1/26829 (2020/10/07).
#6 26793 C. Thomas Tyler Released HelixInstaller/MultiArch/2020.1/26784 (2020/09/25).
#5 26031 C. Thomas Tyler Released Helix Installer 2019.4.26026 (2019/08/22).
#4 25999 C. Thomas Tyler Released HelixInstaller 2019.4.25995 (2019/08/20).
#3 25166 C. Thomas Tyler Released Helix Installer 2019.1.25164 (2019/02/22).
#2 24914 C. Thomas Tyler Released HelixInstaller 2018.2.24912.
#1 24865 C. Thomas Tyler Released HelixInstaller v2018.2.24862.
//guest/perforce_software/helix-installer/dev/test/Vagrantfile
#1 24860 C. Thomas Tyler Added basic Vagrant test suite for Helix Installer for testing
on CentOS 6.10.