Vagrant.configure("2") do |config| config.puppet_install.puppet_version = "3.8.4" # Base machine config config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'" config.vm.provider :virtualbox do |virtualbox| virtualbox.customize ["modifyvm", :id, "--memory", "8048"] virtualbox.customize ["modifyvm", :id, "--cpuexecutioncap", "100"] virtualbox.customize ["modifyvm", :id, "--cpus", "10"] end # Rsync config, triggered on every vagrant refresh config.vm.synced_folder "/usr/local/autotest", "/usr/local/autotest", type: "rsync", owner: "chromoes-test", group: "root", rsync__args: ["--chmod=ug=rwX,o=rxX", "-r"], rsync__exclude: ["site-packages/", "logs/", "results/", "containers/", "shadow_config.ini", ".git/", "chromeos-admin/", "*.box"] # Chown autotest, triggered via vagrant provision --provision-with shell config.vm.provision :shell do |shell| shell.inline = "sudo chown -R chromeos-test /usr/local/autotest" end # Master config # Port mappings: # 80: tcp port, access the master afe via http://localhost:master_port on host # 3306: mysql port, access the master db via 'mysql --host localhost --port 8002' on host # both these will be autocorrected if the ports are occupied. config.vm.define "%(master)s" do |%(master)s| %(master)s.vm.network "forwarded_port", guest: 80, host: %(master_port)s, auto_correct: true %(master)s.vm.network "forwarded_port", guest: 3306, host: 8002, auto_correct: true %(master)s.vm.box = "chromeos_lab_core_cluster" %(master)s.vm.hostname = "%(master)s" ip = "172.17.8.103" %(master)s.vm.network "private_network", ip: ip %(master)s.vm.provision :puppet do |puppet| puppet.manifests_path = "%(manifest_path)s" puppet.manifest_file = "nodes.pp" puppet.module_path = "%(module_path)s" #puppet.options = "--verbose --debug " puppet.facter = { "is_vagrant" => "1", "server_type" => "testing-shard-master", } end end # Shard configs, extend by duplicating this section # Port mappings: # 80: tcp port, access the master afe via http://localhost:shard1_port on host config.vm.define "%(shard1)s" do |%(shard1)s| %(shard1)s.vm.network "forwarded_port", guest: 80, host: %(shard1_port)s, auto_correct: true %(shard1)s.vm.box = "chromeos_lab_core_cluster" %(shard1)s.vm.hostname = "%(shard1)s" ip = "172.17.8.104" %(shard1)s.vm.network "private_network", ip: ip %(shard1)s.vm.provision :puppet do |puppet| puppet.manifests_path = "%(manifest_path)s" puppet.manifest_file = "nodes.pp" puppet.module_path = "%(module_path)s" #puppet.options = "--verbose --debug " puppet.facter = { "is_vagrant" => "1", "shard_hostname" => "%(shard1_shadow_config_hostname)s", "server_type" => "testing-shard", } end end end