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 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.
MacStadium maintains a handful of example scripts to get you started on the road to automating your deployments and more.
Roles are sets of tasks and files used to configure a host machine to perform a specific role (thus, the name).
Playbooks are mappings of Ansible Roles and the various host machines they are meant to configure for a given process.
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.
Virtual machine templates for your building pleasure.
Updated 5 months ago