Use CloudForms and Orchestration Templates to Deploy RHEL on Azure

What's the Point?

Orchestration templates make deploying complex services much easier in the cloud. CloudForms has supported OpenStack HEAT and Amazon CloudFormation orchestration templates for a while but the CloudForms 4.0 release added Azure (Resource Manager or ARM) as well.

Serving It Up

Wrapping one up as a service in CloudForms using an off the shelf template is easy and fast, ready for consumption and making use of CloudForms extended automation, like the built in Approval and Quota for example.

This GitHub repository Azure/azure-quickstart-templates has a huge number of example templates. With the recent release of RHEL on the Azure Marketplace, a template has already been added.

RHEL, the Perfect Example

The Deployment of Red Hat Enterprise Linux VM (RHEL 7.2 or RHEL 6.7) orchestration template deploys a new RHEL 6.7 or 7.2 instance, along with prerequisite resources like network and storage. Watch your Azure subscription burn rate.

Add the Orchestration Template

In Services | Catalogs | Orchestration Templates, select:

  • Populate the dialogue Name and Description as required

  • Be sure to set the Template Type

  • Copy and paste azuredeploy.json into the template field at the bottom

  • Click Save

Create the Service Dialogue

Now the template has been added, we can dynamically create the service dialogue, with all the necessary elements specified in the parameters header section of the JSON based template.

With the new template highlighted, select:
Provide a name for the dialogue and Save.

Create the Catalogue Item

In Services | Catalogs | Catalog Items, select:

  • Populate the dialogue Name and Description as required

  • Be sure to enable Display in Catalog

  • Set Catalog (simply a logical folder which should be created beforehand, as required)

  • Set Dialog to the newly created dialogue

  • Set Orchestration Template to the newly created template

  • Set Provider to the Azure Provider configured in CloudForms

  • Use the default values for Provisioning/Reconfigure/Retirement Entry Point StateMachine

  • Click Save

Also...

  • Once created, it's worth adding a Custom Image

  • Don't forget to tag the new service catalogue item if you're providing access to non-superadmin users

Play Time

That's it, the service is now ready and can be ordered from Services | Service Catalogs.

  • Click Order to display the service dialogue

  • Set Stack Name and New Resource Group

  • Set the required Parameters

  • Click Submit

Monitor the request in the queue. Try Detecting Azure Orchestration Errors with CloudForms to show stack errors in the request Last Message.

The New Stack

Select the newly deployed stack in Clouds | Stacks to show the Status and component resources, among other things.
Like the new RHEL VM.

And in Azure

In the Microsoft Azure Portal, view the new Resource Group, containing the RHEL instance and the other deployed resources.

Boosh

For inspiration, there are plenty more examples to try in the GitHub repository Azure/azure-quickstart-templates.