Add AWS Services to the Catalog
Access: | Configuration > Self-Service |
Available to: | Commander Roles of Superuser and Enterprise Admin |
AWS published services can include private AMIs, Amazon Marketplace AMIs, CloudFormation templates, and custom components. While you can add custom components to any type of service, it's not possible to add private AMIs, Amazon Marketplace AMIs, and CloudFormation templates to the same published service.
We recommend using multi-cloud templates for all services in your catalog, for easier maintenance and greater flexibility.
To add a new service, on the Catalog tab, click Add Service.
As a shortcut, you can select an existing service in the list and click Copy. This option can save time because it copies much of the service's existing configuration.
Service Description page
Customize display options for this service.
Field | Description |
---|---|
Name | The display name for this service in the Service Catalog (maximum 100 characters). 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. |
Description | Optional; up to 1000 characters. 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. |
Icon | Choose an icon from those available, or click Manage Icons to add an icon. |
Categories | To help users find this service in a long list, choose one or more categories from those available, or click Manage Categories to add a category. See Manage Service Catalog categories for more details. |
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.
Components page
On this page, you can add private AMIs, Marketplace AMIs, or CloudFormation templates to the service. You can also add custom components.
- The maximum number of components in a service is 15.
- If you want to update a component with a newer version, see Replace templates in the service catalog.
To add a private AMI to the service:
- Click Add and choose VM Template, Image or AMI.
- In the dialog that appears, select a private AMI.
- Optional: Use the Name field to customize the display name for this component in the Service Catalog (maximum 100 characters).
- Click Add to Service.
Use the tree or enter text in the search field to narrow the component list. The search field searches the Name and Guest OS properties for private AMIs.
If no private AMIs are available, you need to add images to your AWS account in the AWS Management Console. If you've created an instance from a public image, you need to convert the instance into a private image in order to see it in the Available Templates and VMs dialog. All private AMIs added to a Service Catalog entry must belong to the same region. Alternatively, you can add an Amazon Marketplace AMI to the catalog.
This is the component name that a user sees when completing the service request form.
To add an Amazon Marketplace AMI to the service:
For easier maintenance, we recommend adding Amazon Marketplace AMIs to multi-cloud services, rather than single-cloud services. Commander doesn't automatically update Marketplace AMIs in your published services when a new version is available. Using multi-cloud templates means that you can update Marketplace AMIs in a single location.
- Click Add and choose Amazon Marketplace AMI.
- If required, select one of the following from the Show menu 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 Amazon Marketplace AMIs.
- If required, 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 list.
If Commander is unable to determine the platform for an AMI from the AWS API, the Platform is displayed as Unknown.
- Select an AMI from the list.
- Click View AMI details on AWS Marketplace to verify that you have subscribed to the correct AMI.
Important: If you haven't subscribed, service deployment will fail.
- Optional: Use the Name field to customize the display name for this component in the Service Catalog.
- Click Add to Service.
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 cloud account, you may have to wait a few minutes for the list to be populated.
When you select an AMI, its details are displayed in the Details pane to the right. The ID property isn't shown in Commander. The Regions property shows whether an AMI can be deployed to all regions, or only to a subset.
This is the component name that a user sees when completing a service request form.
To add a CloudFormation template to the service:
- Click Add and choose CloudFormation Template.
- In the Add CloudFormation Template dialog, choose one of the following:
- In the URL field, enter an URL that points to a valid CloudFormation template. The URL must be an Amazon S3 URL accessible by the Amazon account.
- Select Upload File and click Add. Browse to a template file. The file must be a text file whose format complies with the JSON standard. For more information, see Working with AWS CloudFormation Templates in the AWS documentation.
- Click OK.
Commander makes a call to AWS to validate the template for proper syntax.
The component is automatically assigned the display name CloudFormation for the request form, but you can customize the name as well as the description in a later step.
To add a new custom component type to the service:
- Click Add > New Component Type.
- Provide a name (maximum 64 characters), optional description and the annual cost.
To add an existing custom component type to the service:
- Click Add and select the component type from the drop-down list.
- If more than five custom component types already exist, you must instead select Custom Type from the list, and in the Select Custom Component Type dialog, select a component from the list.
When you have finished adding components, click Close to return to the wizard.
If you upgraded from release 5.2 or earlier, you can select whether to use the Blueprint model or the Legacy model:
- If you select the Blueprint model (recommended), you customize the Component form within the service catalog entry itself. Component forms customized in the Form Designer are ignored for Blueprint service catalog entries.
- If you continue to use the Legacy model, you must customize both Service and Component forms in the Form Designer. See Add Services to the Catalog – Legacy Model for details on the rest of the wizard when using the legacy model. Note that the Legacy model is deprecated and will be removed in a future release.
At this point, you can click Finish and continue editing the service catalog entry later if you wish. Or, click Next to customize the service.
Component-specific pages
A subpage is added to the Add Service wizard for each component you added to the service.
On each subpage, you see tabs allowing you to customize options for each component in the service. At minimum, you see Infrastructure, Resources, Attributes and Form tabs. If you have integrated with external systems such as Puppet or Chef, additional tabs allow further customization.
Adding elements to the Form tab allows requesters to change the default settings you configure on the other tabs.
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.
Infrastructure tab
Set infrastructure options for this specific component.
Field | Description |
---|---|
Name | Optional: Customize the display name for this component in the Service Catalog (maximum 100 characters). This name is used as the label for the Component section of the Request New Service form. Choose a distinctive component name to help requesters fill out the form. |
Description | Optional: Customize the description for this component in the Service Catalog (maximum 1000 characters). A user sees the component description when viewing service details and when completing a service request form. |
Deployed Name | Specify the name for deployed instances of this component. Select Use default naming format to use the default naming convention, or specify a customized deployed name. Click Configure global text replacement rules to shorten your component names. See also Set up text replacement rules for service names. |
(Amazon Marketplace AMIs only) | Some Marketplace AMIs have costs in addition to instance type costs. Enter an amount to represent the estimated additional annual cost of this Marketplace AMI. This field allows you to display an accurate service cost to requesters. Use the View AMI details on AWS Marketplace hyperlink to get pricing information for this AMI. The value you enter will be set for the Additional Costs custom attribute for VMs deployed from this service. The AWS cost calculator provides an hourly cost, while Commander requires an annual cost. |
Annual Cost | The preconfigured annual cost is displayed. You can change it in the Manage component types for the service catalog. |
Completion Workflow | If you have set up one or more component-level completion workflows, you can select one from the drop-down menu. Completion workflows allow you to specify actions to be carried out after deployment. You can click Add Workflow to create a new workflow. You can click Edit Workflow to edit the workflow that's currently selected in the drop-down list. Note that when you edit the workflow using this link, you're editing the workflow for all of the components or services it's assigned to. While it's possible to create completion workflows for all component types, they are especially recommended for all custom components. If no completion workflow is assigned, a custom component moves immediately to the Completed state once approved. A completion workflow allows for provisioning steps to be carried out before the component moves to Completed. The completion workflow for a database instance, for example, could include a script to create the database. Completion workflows don't act on a stack's resources (that is, its child VMs, load balancers and databases). Completion workflows act only on the stack component itself. |
Enter user data to customize this VM during provisioning. For more information, see AWS User Data Syntax and Supported Variables. | |
Optional: Enter an AWS IAM role for this component. The maximum number of characters is 255. Important: Commander doesn't validate IAM role names, so ensure that role names entered in Commander match those in AWS. IAM role names are not case-sensitive. Using variable substitution, you can assign the IAM role based on information from the request process. Both custom attributes and Input Text Fields are supported as variables. For example, on the Attributes tab of the blueprint, you can create a custom attribute called IAM Role. On the Form tab of the blueprint, you can add the IAM Role custom attribute form element. Then, back on the Infrastructure tab, click in the IAM Role field, and then select the IAM Role custom attribute: You can assign an IAM role to the deployment destination rather than the catalog blueprint, if you deploy the same template (AMI) to multiple deployment destinations, or if you have a large number of catalog entries. If an IAM role is configured in both the deployment destination and the blueprint, the blueprint takes precedence. Administrators can override the IAM role during manual deployment. | |
To enable memory usage monitoring, enable the option Send guest OS memory usage statistics to Amazon CloudWatch. Memory usage monitoring requires the VM to have credentials with full access to CloudWatch. You can enter a role in the IAM Role field for this purpose. For more information, see Monitor Memory Metrics for EC2 Linux Instances and Monitor Memory Metrics for EC2 Windows Instances. | |
(CloudFormation templates only) | Enter an estimated annual cost and select the currency for the entire stack. For more information, see How Commander calculates costs for CloudFormation templates and stacks. You can click Open AWS Cost Calculator to allow AWS to calculate the cost of the template. The cost calculator requires values for all parameters. In the Open AWS Cost Calculator dialog, make sure all parameters have literal (non-variable) values and click Open Cost Calculator. The AWS cost calculator provides a monthly cost, while Commander requires an annual cost. |
When the CloudFormation template contains Identity and Access Management (IAM) resources, Commander displays a warning similar to the following on the Infrastructure tab: IMPORTANT: This warning indicates that the template might cause AWS CloudFormation to create IAM resources. Review the permissions associated with each IAM resource. IAM resources, such as an IAM user with full access, can access and modify any resource in your AWS account. It's important to use templates from a trusted source, so that you can be sure the template has not been altered without your knowledge. See Controlling Access with AWS Identity and Access Management in the AWS documentation for more information. |
Resources tab
This tab is shown only for VM components and allows you to set default resource values for this specific VM template.
The original source AMI disk settings are displayed in a box on the right for your reference. For private AMIs, you can click Reset to source AMI settings to discard all disk changes.
Field | Description |
---|---|
Set the default instance type for this specific component. Only instance types compatible with the source AMI's instance type are available for selection. Click Details to view more properties for the selected instance type. | |
Specify whether this instance type will be EBS optimized by default, if the selected instance type supports it. EBS optimization enables additional, dedicated throughput between Amazon EC2 and Amazon EBS, and therefore improved performance for Amazon EBS volumes. Additional charges from AWS apply if you enable this option. | |
Assign a key pair to the instance. A key pair can be used to open an SSH session to a Linux or Solaris instance from Commander and the Service Portal. See Enable Key Pair SSH Connections to Amazon EC2 VMs to learn how to set this up. You can choose one of the following key pair assignments for the instance:
| |
Set the default storage requirements for this specific component. The following are not supported:
To add a disk, click Add Disk. To delete a disk, click . For each disk, you can specify the following: Device Name: Specify the name that the block device driver for the instance will assign when mounting the volume. The name recommended by Amazon is provided; edit this value if required. See Block Device Mapping in the AWS documentation for more information. Capacity: Specify the disk capacity, in GB. Volume Type: Select one of the following types from the drop-down menu. Hover over the icon for details on each type. Fore more information, see Amazon EBS Volume Types in the AWS documentation.
IOPS: If you select the Provisioned IOPS (SSD) volume type, you must specify the number of I/O operations per second (IOPS) this volume will support. Specify a number between 100 and 10,000. A maximum ratio of 50:1 is permitted between IOPS and volume size; for example, a volume with 3000 IOPS must be at least 60 GB in size. The minimum disk size for this storage type is 4 GB. Encryption: Specify whether to encrypt the disk. Note that not all instance types support disk encryption; see Amazon EBS Encryption in the AWS documentation for the list of supported instance types. Delete on Termination: By default, this disk will be deleted when the VM to which it's attached is terminated. If you want to preserve this disk so that it can be attached to a different VM when this VM is terminated, disable this option. The new disk is created in the same availability zone as the instance it's attached to. You can enable the Locked option to stop Service Portal users from modifying a hard disk in a service request. | |
Select a network zone for each adapter from the drop-down menu. If you don't specify a network zone, a network zone is assigned based on the target deployment destination. The component will be deployed with the same number of adapters as the source AMI. See Assign Network Zones for more information on network zones. If a network zone assigned to a service catalog component is deleted, the service is marked as corrupt and can't be requested. |
Parameters tab (CloudFormation templates only)
This tab allows you to set default CloudFormation parameter values. The parameters and initial values displayed are retrieved from the CloudFormation template. Parameter values are encrypted when saved in the Commander database. Parameters can be added to the request form and can also be customized during manual deployment.
Commander allows you to add CloudFormation parameters to the request form with a combination of list-type custom attributes and variables. See CloudFormation parameters for more information and an example.
You can enter:
- a literal (non-variable) value
- a variable
In any text field that supports variables, click to open the script editor and select variables for the current context.
You can click Reset to template defaults to discard all changes.
Attributes tab: Custom Attributes
If you're creating a service using a CloudFormation template, see CloudFormation parameters for more information.
Set custom attributes and their default values for this specific component. On the Form tab, you can allow requesters to set values for custom attributes. If you don't specify a default value, no default is set for the component. If you add an attribute on the Form tab, the default value you set on the Attributes tab is presented to the requester as the default value.
To be able to add a custom attribute for this component on the request form, you must add the custom attribute on the Attributes tab first.
If custom attributes were defined for the source VM template, they are prepopulated here. Click if you don't want this attribute to apply to this service component.
Custom attributes defined for source VM templates aren't displayed for multi-cloud services.
Click Add Attributes to select from the list of existing custom attributes. In the Add Attributes dialog, Form attributes and custom attributes applicable to the current component type are displayed.
To edit existing custom attributes, click Manage Attributes. On the Custom Attributes page, you can add and edit custom attributes. Click the browser's Back button to return to the Attributes tab.
If you add list-type custom attributes that are interrelated, the attributes are displayed in the order of parent to child to grandchild (if applicable). Your selection of a default value for the parent affects the selectable values for the sublist attribute. For more information, see Create Relationships Between Attributes Used on Forms.
Attributes tab: Groups
Set the default groups for this component. To learn about groups, including other methods for assigning groups to new services, see Manage Service Groups.
If this component is a VM or VM template, groups assigned to the source template or VM aren't prepopulated on the Attributes tab.
Click Add Groups to select one or more group types and click OK. On the Attributes tab, select a group from the relevant menu.
To add, edit, or delete groups, click Manage Groups; when finished, click your browser's Back button to return to the Attributes tab.
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.
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. For more information, see Integrate Puppet with Commander.
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, select a server or organization from the Chef Organization menu. Otherwise, the Chef organization is displayed as a read-only value.
Select an environment from the Chef Environment menu. The roles and recipes for the selected environment are displayed.
Select 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. For more information, see Integrate Chef with Commander.
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.
If you leave the Form tab blank for all components added to the service, users won't see a component form when they request a service; they will see only the service-level form page provided by the new service request definition. For more information, see Create New Service Requests.
If you're creating a service using a CloudFormation template, see CloudFormation parameters for more information and an example.
Form Element | Description |
---|---|
Header | Adds heading text to the form. |
Text | Adds explanatory text to the form. |
Allows the requester to enter a value, such as a note or a password. Important: If users will be entering a password on the request form, enable Hide User Input. When Hide User Input is enabled:
| |
Dynamic List | Allows the requester to select options from lists that are updated in real time from an external source. If the lists can depend on other form elements, the selection of one form element can dictate the available choices for another list. For more information, see Add Dynamic Lists to Forms. |
Allows the requester to upload files during the service request process. Uploaded files are added to the VM's local directory as configured in the completion workflow using the Copy Uploaded File workflow step. This allows for more flexibility when scripting unattended installations and additional VM configurations. The file upload functionality can be used with Chef or Puppet for enhanced VM deployment and orchestration. For more information about integrating with Chef or Puppet, see Integrate Chef with Commander or Integrate Puppet with Commander. | |
Allows the requester to specify the instance type for the VM. Select the instance types that users requesting this service will be able to choose from. Only instance types compatible with the source AMI's instance type are available for selection. In addition, if existing disks are encrypted, only instance types with encryption support are available for selection. Note that if you have configured automated deployment, the instance types you select must be available in the target region. If the selected instance type supports it, this form element allows the requester to configure the instance type as EBS Optimized. | |
Allows the requester to specify storage requirements for a VM component. The Storage-AWS form element works together with the Destination form element on the Service form. If you add the Destination element to the Service form and enable the Limit Selections option, the storage tiers and network zones configured for the selected deployment destination are shown on the form, rather than those you configured for the Storage-AWS element and the Network element. The Limit Selections option ensures that users don't select a storage tier or network zone that's unavailable on the target destination. For more information, see Service Request Form Elements. Selectable Disk Types:
Allowed Actions: Specify whether the requester can Add disks, Change disks, and Remove disks. If you specify that the user can add disks:
If you specify that the user can change disks:
| |
Allows the requester to change or add network adapters for a VM component by choosing a network zone. The number of network adapters shown on the form matches the number of NICs on the source template. When this element is on the form:
Selectable Zones: Choose one or more network zones that users may select. | |
Allows the requester to assign a key pair to the instance. A key pair can be used to open an SSH session to a Linux or Solaris instance from Commander and the Service Portal. See Enable Key Pair SSH Connections to Amazon EC2 VMs to learn how to set this up. This form element allows requesters with a Commander role to choose:
This form element allows requesters with a Service Portal role to choose:
| |
Allows the requester to specify the name of the deployed component. The Maximum Length field allows you to change the maximum number of characters (default: 50). See also Order of precedence for deployed service names. Important: Commander does not validate that the name entered by a requester complies with AWS naming restrictions. | |
Allows the requester to specify custom attribute values for a component. If you added custom attributes on the Attributes tab, or if custom attributes were assigned to the source VM template, these attributes appear in the Attributes list. Click a custom attribute to add it to the form. If the attribute is a list-type attribute and configured to apply only to forms, you can enable Select Multiple to allow users to select multiple values for this attribute. For more information, see Form custom attributes. If you add a custom attribute to a component through the Form tab and add the same attribute to the service form (see Create New Service Requests), the value specified on the service form takes precedence. | |
Allows the requester to specify Puppet classes for a VM component. This form element appears only if a Puppet server is integrated with Commander. If a Puppet environment was selected on the Puppet tab, only classes found in the specified environment can be selected on the form. See Integrate Puppet with Commander for details. 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 "Commander" is also created to contain these groups. | |
Allows the requester to specify Puppet groups for a VM component. This form element appears only if a Puppet server is integrated with Commander. If a Puppet environment was selected on the Puppet tab, only groups found in the specified environment can be selected on the form. See Integrate Puppet with Commander for details. | |
Allows the requester to configure a Chef run-list for a VM component. This form element appears only if a Chef server is integrated with Commander. See Integrate Chef with Commander for details. The Chef Run-List form element can't co-exist with either the Chef Recipes or the Chef Roles form element. | |
Allows the requester to specify Chef recipes for a VM component. This form element appears only if a Chef server is integrated with Commander. See Integrate Chef with Commander for details. The Chef Run-List form element can't co-exist with either the Chef Recipes or the Chef Roles form element. | |
Allows the requester to specify Chef roles for a VM component. This form element appears only if a Chef server is integrated with Commander. See Integrate Chef with Commander for details. The Chef Run-List form element can't co-exist with either the Chef Recipes or the Chef Roles form element. |
Deployment page
When you've finished setting options for each component in the service, specify deployment options for the entire service.
Field | Description |
---|---|
Deployment Order | Some components in a multi-tier service may require other components to be started and running before they can start. Within each group, components are sorted in alphabetical order. Components are deployed serially, not in parallel. An administrator can override this deployment order by manually deploying components in a different order. |
Completion Workflow | If you have set up one or more service-level completion workflows, you can select one from the drop-down menu. Completion workflows allow you to specify actions to be carried out after deployment. You can click Add Workflow to create a new workflow. You can click Edit Workflow to edit the workflow that's currently selected in the drop-down list. Note that when you edit the workflow using this link, you're editing the workflow for all of the components or services it's assigned to. |
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.
- Click Edit Placement Attributes.
- 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.
- Click OK to close the Edit Placement Attributes dialog.
- The placement attribute values you've assigned to this service are displayed on the Placement page.
- 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.
For more information, see Configure Placement Attributes.
Visibility page
Specify which users and groups can request this service.
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.
When viewing a Service Catalog entry's details, a View Source link takes you to the source template in the Applications view, or the source VM in the Infrastructure view.