Tomasz Zajda - Fotolia

Tip

How to use GitHub vRA integration to keep track of blueprints

VMware vRA Cloud Assembly supports integration with a GitHub respository. Use this setup to maintain version control of vRA deployments.

IT administrators often have multiple deployments of vRealize Automation in a single system. Admins can use GitHub vRealize Automation integration to maintain a centralized repository of their blueprints, maintain blueprint backups and track each vRealize Automation deployment.

VMware vRealize Automation (vRA) enables admins to deploy VMs and applications from a self-service catalog. At the heart of vRealize Automation is Cloud Assembly. Admins can create blueprints in Cloud Assembly that define how the system provisions VMs.

Admins who develop and manage these blueprints might find it difficult to maintain version control, because vRA only enables the system to have a local copy of a blueprint. They can turn to version control systems, such as GitHub. To complete a GitHub vRA integration, admins must set up an account with GitHub.

Get to know vRA blueprint versioning with GitHub

VMware defines vRA blueprints in YAML-formatted code. Admins can edit the code easily in Cloud Assembly. Below is an example blueprint that provisions multiple VMs and networks, as well as how the blueprint ties them together at deployment time.

Screenshot of VMware vRealize Automation Cloud Assembly blueprint
VMware vRealize Automation Cloud Assembly provisioning blueprint.

There is a versioning system available in vRA for blueprints, as well as ABX scripts and Orchestrator workflows. But a single instance of vRA only enables admins to maintain an instance of a blueprint. Admins can't use a vRA blueprint for a production environment in a test/dev environment, for example. Version control systems such as GitHub, GitLab and Atlassian Bitbucket make it easier for admins to store and share web-based blueprints and keep track of their code.

Versioning systems are essentially filestores, which are remote locations where admins store backup and configuration files. Admins create code in a file, store it in the version control system and then maintain specific versions of that code, as well as keep track of any changes made to it.

Web-based filestores such as GitHub enable admins to change code and release it for their team and/or others to use. Admins can document changes inside the system for later access. But there are a few things admins should consider when choosing a versioning system.

For example, vRA 8.2 doesn't support GitHub Enterprise; although vRA does support the GitHub Free edition. Still, GitHub Free doesn't run on premises.

GitLab is an alternative to GitHub. Some admins are unable to store data outside of their data centers. These admins could opt for the local instance of GitLab Free, which supports vRA integration and can run on premises.

Get started with GitHub vRA integration

Git is an open source distributed code management and version control technology that enables admins to store and share code. It is the basis of GitHub, as well as competitive products. Admins must set up either an account with a web-based Git service or an on-premises Git service before initiating a Git integration with vRA. Each service has its own setup procedure, so admins should follow the guidelines found within the service's documentation.

No matter which Git-based service an admin chooses to work with vRA, they'll set up a repository. Admins can create a directory structure in the repository, where they place blueprint, ABX script and Orchestrator object files. Blueprints must have a fixed name, such as blueprint.yaml, so admins can place them in their own directory.

Now, the admin can configure the Git repository integration with vRA. Navigate to the Infrastructure tab in Cloud Assembly to find integration options.

Screenshot of vRA Cloud Assembly integrations interface
VMware vRealize Automation Cloud Assembly infrastructure interface.

The GitHub Free option automatically links to the GitHub API in the server URL. Admins can add their personal token, which GitHub identifies and then it enables them to add the GitHub integration to vRA.

Screenshot of vRA GitHub credentials
GitHub credentials interface with VMware vRealize Automation.

The next step is to add projects to the GitHub vRA integration. Admins can add a link to a repository for a blueprint or ABS script for each configured project. The repository points to the main branch in GitHub, though there are sub-branches where admins can place their blueprint code.

Screenshot of GitHub vRA repository
Repository for GitHub vRA project blueprints.

Once admins add a project, vRA pulls any blueprints located within the repository and makes them available to the project. Admins can locate blueprints from GitHub under the Design tab in Cloud Assembly. They can also pull ABX scripts from a central repository.

Screenshot of vRA Git service blueprint availability
Various Git service and vRA integration blueprint designs.

To manage versions of vRealize Orchestrator workflows with a Git repository, admins must produce a link to their repository from vRealize Orchestrator itself. The procedure is similar to vRA, but with two differences:

  • GitHub controls blueprint versions for the entire vRealize Orchestrator system -- not per project; and
  • GitHub vRealize Orchestrator integrations support two-way traffic, while GitHub vRA integrations are one-way interactions only.

When admins synchronize a repository, changes made to blueprints in vRA aren't pushed to the Git system. But this is exactly what some admins require because they must manage blueprint versions centrally.

Still, vRealize Orchestrator repositories support two-way traffic, which enables admins to store changes made to blueprints in the Git system.

Dig Deeper on VMware cloud