Automated Virtual Machine Imaging

Photo by Seb Nicolas
Since 2022, I have worked with Aaron Gill to create and maintain a solution to provision Windows virtual machines for use in live broadcasting environments.
Originally, the configurations were based on those used for a project we both work on the Noxsquad Gameshow, and only automated some of the steps (the rest being PowerShell scripts that could be copied and run from a README file). Aaron saw that the workflow, even in its primitive state, would be useful in his freelance work as a broadcast engineer, and so over time we have updated the software with new features, such as:
- Adding configurations for new types of machines
- For example, tailoring the installed software for use by a replay operator or graphics operator
- Refactoring common installation steps to use shared code, allowing
- Changes to installations to be made in a single place, and
- Machine types to easily include or not include certain software
- Simplifying the start of the imaging process to a single copy-and-pastable PowerShell script
- This downloads and runs a configuration menu for, amongst other settings, the type of machine and desktop wallpaper branding, then starting the imaging process
- Reducing manual input, where possible, to double clicking icons on the desktop after machine restarts
Of note, the work put in to reducing manual input during the imaging process brought the total time for provisioning a machine (from the point that the operating system is installed to it being ready by the end user) to about half an hour. Another benefit is that, since the machines will restart themselves when required, multiple machines can be set up in parallel without constant oversight, saving Aaron both time and money by allowing to machines be created much closer to the time of a broadcast.