Move the labs onto a real VM, and give Macs a supported path - #3
Merged
Conversation
The lab track moves off Docker and onto a single Ubuntu 24.04 server the student keeps for the whole course. Adds lab-vm/ (provision.sh, the `lab` helper, the Asterisk configs and the appliance build scripts) and the nine rewritten labs. Lab 0 previously pointed Apple Silicon Mac users at lab0-build-machine-utm.md, a file that was never written. Removed. Lab 0 now offers three paths that end at the same machine: A import the ready-made OVA in VirtualBox B install Ubuntu yourself in VirtualBox, then run provision.sh base C rent an Ubuntu 24.04 server from a cloud provider Intel Macs take A or B unchanged. Apple Silicon takes C: VirtualBox's macOS/Arm64 build is an unsupported developer preview and the appliance is x86-64, so there is nothing to import. Path C covers droplet creation, the provider firewall (5060/udp and the RTP range restricted to the student's own address and the lab gateway, 8088-8089 for labs 6 and 7), creating the `lab` user, and destroying the server at the end so it stops billing. Follow-on fixes so nothing else assumes VirtualBox: - lab 2 part I/II and lab 8 troubleshooting cover both the bridged adapter and the cloud firewall; the iptables lockout row names the provider's recovery console as well as the VirtualBox window - `lab ip` and `lab status` hints no longer name a VirtualBox setting only - lab.env's security note claimed these teaching credentials sit on an unroutable host-only network. On the cloud path they do not, and the note now says what actually protects them - Dockerfile: fetch Asterisk from releases/, which keeps every point release, instead of the top-level directory that only holds the newest one - .gitignore: exclude the 800 MB .ova (it is served from R2; the checksum is tracked), and stop the generic build/ rule from hiding lab-vm/build/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
The lab track moves off Docker onto a single Ubuntu 24.04 server the student keeps for the whole course. Adds
lab-vm/(provision.sh, thelabhelper, the Asterisk configs, the appliance build scripts) and the nine rewritten labs.The bug this fixes
Lab 0 sent Apple Silicon Mac users to
lab0-build-machine-utm.md— a file that was never written. It was the only dangling cross-reference in the lab set.Lab 0 now has three paths, all ending at the same machine
provision.sh baseIntel Macs take A or B unchanged — VirtualBox has a supported macOS/Intel build and the appliance is x86-64. Apple Silicon takes C: the macOS/Arm64 VirtualBox build is an unsupported developer preview, and there is no ARM appliance to import.
Path C covers droplet creation, the provider firewall (5060/udp and the RTP range restricted to the student's own address and the lab gateway; 8088-8089 for labs 6 and 7), creating the
labuser, and destroying the server at the end so it stops billing.Follow-on fixes so nothing else assumes VirtualBox
lab ip/lab statushints no longer name a VirtualBox-only settinglab.env's security note claimed these teaching credentials sit on an unroutable host-only network. On Path C they do not — the note now says what actually protects themlab/Dockerfile: fetch Asterisk fromreleases/, which keeps every point release, instead of the top-level directory that only holds the newest.gitignore: exclude the 800 MB.ova(served from R2, checksum tracked), and stop the genericbuild/rule hidinglab-vm/build/Not verified
Path C has not been run end to end — no droplet was created. The DigitalOcean UI labels and the ~US$24/month figure are from knowledge, not a live check, and are worth one pass before print.