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.

Ansible

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

Packer

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

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.