1+ # Allows for setting an env var for fewer (or more) team servers, for different
2+ # testing scenarios & hardware
3+ num_team_servers = Integer ( ENV [ "num_team_servers" ] . nil? ? 2 : ENV [ "num_team_servers" ] )
4+
15Vagrant . configure ( "2" ) do |config |
26 box = "debian/bookworm64" # Debian 12
37
@@ -26,27 +30,33 @@ Vagrant.configure("2") do |config|
2630 db . vm . box = box
2731
2832 db . vm . network "private_network" , ip : db_addr
29- db . vm . network "forwarded_port" , guest : 5432 , host : 5432 , protocol : "tcp"
30- db . vm . network "forwarded_port" , guest : 8080 , host : 8080 , protocol : "tcp"
33+ db . vm . network "forwarded_port" , guest : 5432 , host : 5432 , protocol : "tcp" # DB
34+ db . vm . network "forwarded_port" , guest : 8000 , host : 8000 , protocol : "tcp" # Dummy web app
35+ db . vm . network "forwarded_port" , guest : 8080 , host : 8080 , protocol : "tcp" # Score dashboard
3136
3237 db . vm . synced_folder "." , "/vagrant" , disabled : true
3338
3439 db . vm . provision "file" , source : "./scripts" , destination : "/tmp/scripts"
40+ db . vm . provision "file" , source : "./services" , destination : "/tmp/services"
3541 db . vm . provision "file" , source : "./score-server" , destination : "/tmp/score-server"
42+ db . vm . provision "file" , source : "./dummy-web-app" , destination : "/tmp/dummy-web-app"
3643
3744 db . vm . provision "shell" ,
3845 inline : <<-SCRIPT
46+ #!/usr/bin/env bash
47+ set -euo pipefail
48+
3949 # Need both running here for Vagrant -- other platforms should ONLY have 2332
40- sudo sh -c 'grep 2332 /etc/ssh/sshd_config || printf "Port 2332\n Port 22\n " >> /etc/ssh/sshd_config'
50+ sudo sh -c 'grep -q 2332 /etc/ssh/sshd_config || printf "Port 2332\n Port 22\n " >> /etc/ssh/sshd_config'
4151 sudo systemctl restart ssh
4252
43- rm -rf /root/score-server
44- sudo cp -r /tmp/score-server /root/score-server
53+ rm -rf /root/{ score-server,services,dummy-web-app}
54+ sudo cp -r /tmp/{ score-server,services,dummy-web-app} /root/
4555 bash /tmp/scripts/init-db.sh
4656 SCRIPT
4757 end
4858
49- ( 1 ..2 ) . each do |i |
59+ ( 1 ..num_team_servers ) . each do |i |
5060 config . vm . define "team#{ i } " do |team |
5161 team . vm . box = box
5262
@@ -63,8 +73,11 @@ Vagrant.configure("2") do |config|
6373
6474 team . vm . provision "shell" ,
6575 inline : <<-SCRIPT
76+ #!/usr/bin/env bash
77+ set -euo pipefail
78+
6679 # Need both running here for Vagrant -- other platforms should ONLY have 2332
67- sudo sh -c 'grep 2332 /etc/ssh/sshd_config || printf "Port 2332\n Port 22\n " >> /etc/ssh/sshd_config'
80+ sudo sh -c 'grep -q 2332 /etc/ssh/sshd_config || printf "Port 2332\n Port 22\n " >> /etc/ssh/sshd_config'
6881 sudo systemctl restart ssh
6982
7083 export team_name="Team-#{ i } "
0 commit comments