| 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 |