Deploying Xcode CI Servers with MDS

MDS is the fastest way to get a Mac up and running. It can be used with Xcode Continuous Integration (CI) servers for fully automating initial deployment and wipe/reinstall for upgrades and maintenance.

MDS

MDS automates the install of macOS and packages with the help of the the MDS Automaton. The MDS Automaton attaches to the USB port of each of the servers and provides the commands for full automation. Even after a CI server is deployed, an administrator can remotely send a command to activate reset of the server, and the server will be wiped, macOS installed, software installed and configured.

MDS is a macOS utility for creating and organizing the resources for installing macOS, creating and organizing packages, and preparing scripts. MDS saves these resources to an external volume or a macOS disk image to for hosting on a file or web server. Typically, the disk image is created and copied to a web server that is accessible to all the CI servers. When a server is given the command to reset, the server is automatically booted to the recovery partition, the disk image is mounted from the web server, and macOS and all software and configuration is restored.

MDS Automaton

The MDS Automaton adds the capability to fully automate the restore of the CI server. It is a small USB device that is plugged into each CI server, and sends the required keystrokes for fully automating the setup of the CI server (see the full command interface guide for more info). When a server is initially deployed, the MDS Automaton provides the commands to boot to recovery, mount the MDS resources from the web server, and run a workflow to wipe and install macOS as well as install packages and scripts. Once that process is complete, the MDS Automaton listens on the USB port for additional commands. When the server needs to be reset or upgraded, a single command is remotely sent via SSH (or similar mechanism) and the server is rebooted. The MDS Automaton then sends commands to the server for full automation of setup and configuration. Once completed, the server is added back to the CI environment. The whole process can be as fast as 30 minutes, depending on network conditions and amount of software installed.