Adding Multi-Cloud Services to the Catalog

With multi-cloud templates, you can create a single service that can be deployed on multiple datacenters, as well as multiple private, public or hybrid clouds.

Configuring a Multi-Cloud Template in vCommander

Here are some examples of services that you can publish using multi-cloud templates:

  • a service that can be deployed on vCenter, SCVMM, AWS or Azure
  • a service that can be deployed on multiple vCenters

Multi-cloud services aren't yet supported for Google Cloud Platform.

You can also use multi-cloud templates to make it easier to keep the service catalog up to date. Create a multi-cloud template that contains a single base OS template, such as CentOS, and then create multiple published services that point to this multi-cloud template. Use completion workflows or configuration management tools (such as Chef or Puppet) to install custom software on the deployed VMs. When it's time to update the template, you only have to edit the multi-cloud template; all published services pointing to this template will automatically be updated.

Depending on your environment, you can create multi-cloud services in different ways. For example, if you want to create a three-tier service, you could:

  • Create three multi-cloud templates, one for each tier, as shown in the image above
  • Create two multi-cloud templates: one for the database, and one for both the web server and middleware tiers. The web server and middleware tiers could then be configured using Chef, Puppet or a configuration spec.

Publishing a multi-cloud service involves two steps:

  1. Creating a multi-cloud template
  2. Adding a multi-cloud service to the catalog

Notes:

Limitations:

  • The details of a multi-cloud catalog entry don't include information about its source multi-cloud templates.
  • You can't add any of the following to a multi-cloud template: CloudFormation templates, ARM templates, virtual service templates, OVA templates, or OVF templates.

Creating a multi-cloud template

Access through:

Configuration menu > Self-Service > Catalog tab

Available to:

Commander Role of Superuser, Enterprise Admin

To create a multi-cloud template:

  1. On the Catalog tab, click Multi-Cloud > Manage multi-cloud templates.
  2. In the Manage Multi-Cloud Templates dialog, click New Multi-Cloud Template.
  3. Provide a name for the template, and an optional description. For example, if you're creating a multi-cloud template for Windows 2012 , use the name "Windows 2012".
  4. To add a private template:
    1. Click Add VM Template and choose VM Template, Image or AMI.
    2. In the Available Templates and VMs dialog, navigate to the first VM template you want to add to the list, select it, customize the name if you wish, and click Add to Multi-Cloud Template.
    3. Click Close to close the Available VMs and Templates dialog.

    Tip: Use the Quick Search to locate VM templates.

  5. To add an AMI from the Amazon Marketplace:
    1. Click Add and choose Amazon Marketplace AMI.
    2. The Add Amazon Marketplace AMI dialog displays a list of Marketplace AMIs, sorted by name.

      If you very recently installed Commander or added an AWS account as a managed system, you may have to wait a few minutes for the list to be populated.

    3. If necessary, use the Show drop-down list to change the scope of the list.
      • Favorites: Displays a list of favorite AMIs. Only the latest version of each AMI is available in the favorites list. You can customize the favorite AMIs list.
      • Marketplace (latest version): Display only the latest version of each AMI.
      • Marketplace (all): Display all Marketplace AMIs.
    4. If necessary, filter your search by:
      • entering text in the search field. The search is based on the AWS properties Name, Description and ID
      • making a selection from the Platform drop-down list
      • If Commander is unable to determine the platform for an AMI from the AWS API, the Platform is displayed as Unknown.

    5. When you select an AMI, its details are displayed in the Details pane to the right. The ID property is not shown in Commander. The Regions property shows whether an AMI can be deployed to all regions, or only to a subset.

    6. Select an AMI from the list.
    7. Click View AMI details on AWS Marketplace to verify that you have subscribed to the correct AMI.

      Important: If you have not subscribed, service deployment will fail.

    8. Optional: Use the Name field to customize the display name for this component in the Service Catalog.
    9. This is the component name that a user sees when completing a service request form.

    10. Click Add to Multi-Cloud Template.
    11. Because Amazon Marketplace AMIs are typically deployable in all regions, once you've added an Amazon Marketplace AMI to a multi-cloud template, you can't add another Marketplace AMI, or a non-Marketplace AMI. The Regions property in the Details pane of the Add Amazon Marketplace AMI dialog shows whether an AMI can be deployed to all regions, or only a subset.

  6. Add a VM template from each location where you want this multi-cloud template to be deployed.
  7. In our example, we've added a Windows 2012 VM template from our vCenter and AWS managed systems. For public clouds, make sure to add an image from each region where you want to be able to deploy this service.

    Once you've added a VM template, the list is automatically filtered to show only compatible items. The following rules are used:

    • You can add only one VM template from each VMware datacenter.
    • You can add only one VM template from each public cloud region.
    • You can add only one VM template from each SCVMM managed system.
    • All VM templates of the same managed system type must have the same number of disks and network adapters. For example, all VMware VM templates in a multi-cloud template must have the same number of disks and templates.
  8. Click OK to close the Configure Multi-Cloud Templates dialog.

Adding a multi-cloud service to the catalog

Access through:

Configuration menu > Self-Service > Catalog tab

Available to:

Commander Role of Superuser, Enterprise Admin

To add a multi-cloud template to the service catalog:

  1. On the Catalog tab, click Add Service.
  2. On the Service Description page, enter a Name to be displayed for the service in the Service Catalog.

    This name is used as the label for the Service section of the Request New Service form. Choose a distinctive Service Name to help requesters fill out the form.

  3. Optional: Enter a Description for this service.

    Along with the Name field, the Description field is used in Service Catalog searches, so adding a description can help users find service catalog entries.

  4. Choose an Icon from those available. To add an icon, click Manage Icons. See Managing Icons for the Service Catalog for more details.
  5. To help users find this service in a long list, choose one or more Categories from those available. To add a category, click Manage Categories. See Managing Categories for the Service Catalog for more details.
  6. If the service-level form elements such as Quantity and Expiry Date don't make sense for this service, you can hide the service portion of the service request form by clearing the Display service form when this service is requested checkbox.

  7. On the Component Blueprints page, click Add > Multi-Cloud Template.
  8. In the Add Multi-Cloud Template dialog, select a multi-cloud template and click Add to Service.
  9. Add more multi-cloud templates or custom components to the service if desired.
  10. All multi-cloud templates added to a service must share at least one VM template location. For example, let's say one multi-cloud template includes a base OS template that can be deployed only on-premises. You could add another multi-cloud template that includes a base OS template that can be deployed to any of your managed systems.

  11. Click Close.
  12. The multi-cloud templates you added appear on the Component Blueprints page.

    A component blueprint page appears in the wizard for each multi-cloud template you added. Each component blueprint page contains at least four tabs: Infrastructure, Resources, Attributes and Form. See the following sections for details on each option.

Infrastructure tab

If your multi-cloud template includes templates from multiple cloud types (for example, AWS and VMware), you will see cloud-independent settings at the top of the Infrastructure tab, and cloud-specific settings at the bottom of the Infrastructure tab.

Resources tab

If your multi-cloud template includes templates from multiple cloud types (for example, AWS and VMware), you will see a section for each cloud in the Resources tab.

Attributes tab

You can assign metadata to the service component with custom attributes and groups.

Attributes tab settings apply globally to the deployed component. If you want custom attribute values and groups to vary depending on whether the VM is deployed, you should instead create conditional component-level completion workflows. For example, you may want to assign different power schedule groups for VMs deployed on AWS and VMware. In this case, you'd add two conditional Set Groups steps to the component-level completion workflow: one that acts on components deployed on AWS, and one that acts on components deployed on VMware. To learn more about conditional workflows, see Making Workflow Steps Conditional.

Puppet tab

If you have integrated a Puppet server with Commander, Puppet environments, classes and groups are displayed on the Puppet tab for service components. Select an environment for the VM component. Once you select an environment, only those classes and groups found in that environment are available for selection.

You can select one or more default classes and groups. Ctrl-click to select multiple classes and groups.

Best Practice: Assign classes to nodes indirectly by assigning groups to nodes, rather than directly assigning classes to nodes. If you use the Configure Puppet workflow step to assign classes and variables to a node, Commander creates a group with the same name as the node and pins the node to the group. A parent group named "vCommander" is also created to contain these groups.

You can also allow users to select classes and/or groups on the Form tab. You can then use variables to return the requested values through a completion workflow. See Configure Puppet information for service catalog components for more information.

Chef tab

If you have integrated one or more Chef servers or organizations with Commander, Chef information is displayed on the Chef tab for service components.

If you have added multiple Chef servers or organizations, choose a server or organization from the Chef Organization menu. Otherwise, the Chef organization is displayed as a read-only value.

Choose an environment from the Chef Environment menu. The roles and recipes for the selected environment are displayed.

Choose one or more default roles and recipes from the Available Roles and Recipes pick-list. Ctrl-click to select multiple roles and recipes. Use the arrow buttons between the lists to move your selections into the Current Run-List. Then order the roles and recipes properly.

If you don't select default roles and recipes, no defaults are applied.

You can then use variables to return your selections through a completion workflow. See Integrating Chef with Commander for more information.

Form tab

On this tab, you customize the form users see when they request this specific component. Adding elements to the Form tab allows requesters to change the default settings you configured on the other tabs.

You must add form elements applicable to each cloud; for example, if you want users to modify storage resources for a service that can be deployed on VMware or AWS, you must add both the Storage and the Storage-AWS form elements. If you want users to modify resource requirements for a service that can be deployed on VMware or AWS, you must add the CPU Count, Memory and Instance Type form elements. When a user requests a multi-cloud service, the component form automatically displays only the elements applicable to the selected destination.

If a user requests changes from the default settings configured in the service catalog, these changes are displayed in approval emails, on the approval landing page, and in the Request Details dialog.

If you leave the Form tab blank, requesters won't see a Component form; they will see only the Service-level form that is configured in the Form Designer.

Deployment page

When you've finished setting options for each component in the service, specify deployment options for the entire service.

Placement page

When you assign a placement attribute value to a published service, you're identifying the requirements of that published service to help ensure that services are deployed to the best destination.

  1. Click Edit Placement Attributes.
  2. In the Edit Placement Attributes dialog, in the Not Required pane, select an attribute value that's provided by this destination and click Add to move it to the Required pane.
  3. Click OK to close the Edit Placement Attributes dialog.
  4. The placement attribute values you've assigned to this service are displayed on the Placement page.
  5. For a placement attribute with selectable values, use the Up and Down arrow buttons to order the attribute values by preference. For example, if a service can be deployed on either private or public cloud, but private cloud is preferable, make sure the Private Cloud attribute value is first in the list.

To learn more, see Configuring Attributes for Intelligent Placement.

Visibility page

Specify which users and groups can request this service.

Field

Description

Do not publish

The service is in the catalog but is not available for selection (temporarily disabled).

See also Permanently removing a service from the service catalog.

Publish - Global

The service is available to all organizations, users and groups.

Publish - Specific organizations, users and groups

The service is available to the specified organizations, users and groups.

Under Organizations, select an organization from the drop-down menu and click Add. Under Users/Groups, enter the login or email address for one or more users or groups and click Add. You can assign a service to both organizations and users/groups.

When an organization member requests this service, the deployed service will automatically be assigned to the organization, with the requester as primary owner.

Summary page

Review the details and click Finish.

The service that you added or changed is displayed in the Service Catalog List View or Table View.

What's next?

You can edit the service at any time by selecting it in the list and clicking Edit. Use the Service Type column of the service catalog Table View to distinguish multi-cloud services from single-cloud services.

Distinguishing Multi-Cloud Services from Single-Cloud Services in the Catalog

Updating multi-cloud templates and services

If you edit a multi-cloud template, Commander automatically updates any service catalog entries referencing the multi-cloud template. However, you may need to review blueprint configuration settings. For example, if you add an Azure VM template to a multi-cloud template that already includes VMware and AWS VM templates, Commander will automatically apply default Azure settings to all multi-cloud services referencing the multi-cloud template. But if the Azure VM template requires credentials, and you have not configured the request form to prompt for credentials, you need to add credentials to the service catalog blueprints for all catalog entries referencing that multi-cloud template to ensure successful deployment.

Troubleshooting

See also Repairing a corrupt service catalog entry.

If you see the following error when attempting to add a multi-cloud template to a service that already contains a multi-cloud template:

"The VM template locations in the selected multi-cloud template don't match locations in previously added multi-cloud templates. These new locations won't be used when this service is deployed."

This means that some of the VM templates in the service will never be deployed.

For example, let's say the first multi-cloud template added to the service contains VM templates from AWS US-East-1 and a VMware datacenter named Engineering. If you add a second multi-cloud template that contains VM templates from AWS US-East-1 and a VMware datacenter named Automation, the multi-cloud service will never be deployed to VMware, because the VMware locations don't match.