After installing Pivotal Cloud Foundry (PCF) on vSphere, you’ll have a collection of at least 21 (probably closer to 60!) VMs with names that probably don’t match anyone’s convention. Although, as noted in the PCF documentation, there is a correct order to starting up and shutting down the VMs in PCF, the installer does not configure a vApp so that we can control that order. So, I dragged all the PCF VMs into a vApp and starting trying to determine which ones are in which role and quickly realized that it’s a pain.
As an aside, when you create your Availability Zone, you point it at a vSphere cluster and, optionally, a Resource Pool. Unfortunately, if you specify a vApp Name instead of a Resource Pool name, BOSH will fail to deploy the VMs. So, I’ve typically leave the Resource Pool field blank and then drag the VMs into a vApp post-deployment.
I put together a workflow that will help place the PCF VMs into correct startup/shutdown groups for you.
Instructions for Use
- Download the package from here
- Import the package into vRealize Orchestrator
- If you haven’t already, create a new vApp in your cluster and drag the Ops Manager, Ops Manager Director and all of the Elastic Runtime VMs into the vApp
- Run the “PCFvAppStartupOrder” workflow, select your new vApp as the input, click Submit
- If the PCF installation is scaled out to more VMs, just drag them to the vApp and rerun the workflow
How it works/What it does
- The correct order is stored in a string array
- The deployment, job and director custom fields are read for each VM in the vApp to get the VM’s assigned role
- For the Ops Manager, the Notes field is read and if found, it is placed at the top of the startup sequnce
- Unknown VMs are assigned a startup order higher than the last in the array. This way, they start last and power-off first
- Unknown VMs are those where the “deployment” field does not start with “cf”; with exceptions for Ops Manager (Notes field) and Ops Manager Director (“director” field value is “bosh-init”)
Additional suggestions and notes
- Adjust the resources for the vApp based on VMware best practices and what makes sense for your environment
- Use this at your own risk, there is no implied warranty