Provisioning on MacStadium with Ansible
Modern DevOps is split into a few different steps, done in a slightly different order depending on needs and processes. The high level elements are:
- Creation of virtual machines (provisioning)
- Have a group space to collaborate and then deploy new code being developed (the pipeline)
- Applying updates/new external packages (rehydration or configuration management, architecture dependent)
MacStadium virtualization does not follow the “standard” method. Unlike other clouds (like AWS or GCP), MacStadium has no native virtualization layer. By the time the need was seen for Mac-based cloud services, there were very advanced commercial-off-the-shelf (CotS) solutions. Simply put, MacStadium uses those.
The three methods of virtualization are Orchestration with Kubernetes on Apple (Orka), VMware (specifically with VSphere), and Anka. It should be noted that at the time of this blog post, Orka is still in beta but the support across the open source community for Kubernetes is huge. Given the level of excitement and support, this new method will be a popular virtualization choice for MacStadium customers moving forward.
MacStadium is often blown away by the skill and ingenuity of its customers. In a series of blog posts, we will attempt to provide some pointers and a few examples for new adopters to use as a guide. We'll start with Ansible:
Ansible is a configuration management tool that acts as a sort of hub for scripting all variety of actions with all sorts of software. It is written in 'Ansible,' a YAML-based language that embraces human readability, so it doesn’t take a tremendous level of technical skill to use. MacStadium has recently contributed to using this tool.
Ansible also requires Python (Python 2.7 or Python 3.5+ should do the trick) to be installed on the control machine. You can execute Ansible against groups of target nodes or on the control machine itself (in this case the control machine will configure itself).
Orka/Kubernetes: Ansible is compatible with Kubernetes deployments, and the Ansible team has extensive experience with this. Maintaining Kubernetes functions is core to the team’s mission for other business products. This allows for the tool set to be supported internally and released to the open source community rich with features and documentation.
VSphere: Ansible 2.8 and older support direct provisioning by connecting to VSphere, as of 2.9 this function was deprecated in favor of more generic VMware modules (specifically VCenter and ESXi).
Anka: As of this blog post, Ansible is fully compatible and there is no plan to make that less so in the future. The Anka team is a fan of this tool, and every intention of maintaining this functionality.