Cloud Automation

The tools described here are meant to empower dev teams to accomplish the same steps described elsewhere in these docs -- e.g. creating a CI Build Node with VMware -- but with healthy dose of efficiency at scale. Using infrastructure as code -- the creation of pre-defined scripts to be executed in pre-defined contexts -- is how we'll get there.


Installation Guide
Ansible Docs

Ansible is a largely free and open source server configuration tool. It must be installed, along with Python, on the "control machine," which can be your local desktop if you like. From there, Ansible will require SSH access to the target server -- in this case your Mac Cloud.

Once Ansible has gained access to the target environment via SSH, it can run provisioning scripts and the like to prepare your environment for whatever work needs to be done -- be it CI or anything else.

Starter Scripts

MacStadium maintains a handful of example scripts to get you started on the road to automating your deployments and more.

Ansible Roles

Roles are sets of tasks and files used to configure a host machine to perform a specific role (thus, the name).

Ansible Role: macOS CI
Ansible Role: Xcode

Ansible Playbooks

Playbooks are mappings of Ansible Roles and the various host machines they are meant to configure for a given process.

Ansible Playbook: macOS CI Setup


Installation Guide
Packer Docs

Packer is a powerful, open-source tool that allows you to store a "live image" of a virtual machine, which can be cloned in seconds, rather than minutes or hours. It utilizes JSON to define the VM template, and because it is command-line-driven, it can easily be integrated into your build pipeline.

Packer is not a direct substitute for provisioning solutions. In fact, it is built to interface easily with Chef, Puppet and Ansible for the provisioning of the base VM image.

VM Templates

OSX VM Templates for Packer and VeeWee

Virtual machine templates for your building pleasure.

VM Templates

Updated about a month ago

Cloud Automation

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.