Cloud Services

Enterprise Marketplace

Provisioning stacks via Ansible Tower
Published On Jun 14, 2024 - 9:03 AM

Provisioning stacks via Ansible Tower

Describes how to enable Ansible Tower (AT) to provision Enterprise Marketplace.
Common Actions Services (CAS) provisioning feature allows you to configure any stack action supported by CAS for Ansible Tower. This feature is specifically for Enterprise Marketplace.
Any new provisioning action that has been onboarded using Common Action Services can be published as a catalog in the Enterprise Marketplace catalog

Prerequisites

The following applications must be enabled in your tenant:
  • The
    Kyndryl Enterprise Marketplace
    application with the
    Enable CAS
    feature flag turned on.
  • The
    Kyndryl Actions
    application.
For more information, contact your Kyndryl representative.

Steps

  1. Create the following roles to be added to your Enterprise Marketplace and Actions teams:
    1. Action roles in IAM: Actions Registry Admin, and Action Policy Admin.
    2. Enterprise Marketplace roles in User Access Management: Buyer, Technical Approver, Financial Approver, Legal Approver, Catalog Administrator, Operator.
  2. Clone the bootstrap repository in your local drive.
  3. Navigate to the CAS folder, open the configuration file (config.sh), and make the following updates:
    1. Change the
      'isFulfilmentRegistryCreate'
      to
      TRUE
      .
    2. Change the
      'fulfilment_provider_code'
      in accordance with the user preference.
    3. Change the
      'isFulfilmentAccountCreate'
      to
      TRUE
      .
    Use the following example to update your configuration file:
    cas_account_name="cas" cas_credential_name="cas_creds" isFulfilmentRegistryCreate=false #WEBSOCKET/FORWARDPROXY/DIRECT connectionProtocol="WEBSOCKET" isFulfilmentProvCreate=true // Must be set to true fulfilment_provider_code="tower" // In accordance with user preference isFulfilmentAccountCreate=true // Must be set to true baseURL="<Tower host URL>" tower_account_name="tower" // Account name to be created for above fulfilment provider code tower_credential_name="tower_creds" // The credential for above tower account tower_authorization="XXXXXXXXXXX-XXXX-XXXXXXXX" // API key of Ansible Tower
  4. Open the setup file (setup.sh) and make the updates in accordance to your tenant's details: host URL, username, and API key.
    Use the following example to update your setup file:
    { "host":"https://ibm-api.gravitant.net", // Host name of your tenant - Consume API URL "username":"XXXXXXX-XXXXX-XXXXXX", // User ID as seen in the user profile icon. "apikey":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX" // Generate a new API key}
    To learn how to generate API keys, see Managing API keys. To learn more about the user profile icon, see Banner icons.
  5. Navigate to the
    fulfilment_registry
    folder, open the fulfilment_registry file, and update the
    'additionalmetadata'
    property to setup the Enterprise Marketplace inventory view for the stack and stack components.
    Use the following example to update your file:
    { "providerCode": "{fulfilment_provider_code}", "actionListFilter": "", "additionalmetadata": {}, // Make the required updates in this property "credentialSource": "fulfilmentSystem", "defaultActionDefinitionRetriableTTL": "1", "defaultActionDefinitionIsRetriable": true, "connectionProtocol": "{connectionProtocol}", "baseURL": ""}
    When the Ansible Tower uses on-prem provisioning, then the connection protocol must be set to
    'WEBSOCKET'
    . When the Ansible Tower uses public cloud provisioning, then the connection protocol must be set to
    'DIRECT'
    .
  6. To complete the configuration, run the
    'setup.sh'
    file available in the
    CAS
    root folder.
    If Ansible Tower uses on-prem provisioning, install the proxy-adapter-installer. To provision using CAS, the
    'application'
    property must be set to
    'mcmp:actions:service'
    .
    Use the following example to update your file:
    #websocket configuration #Set setup type, it could be `websocket` or `nginx` proxy_adapter_setup_type=websocket #Set the valid provider code here provider_code='tower' #UUID used to reference the proxy adapter proxy_id=tower #Tenant Specific Host host=ibm.gravitant.net #Broker value Ex. mcmp:consume:service for Consume, mcmp:core:service for Core or mcmp:actions:service for Actions application=mcmp:actions:service #Provider code protocol=$provider_code #TokenName ws_token_name=actionstoken #Token ws_token=<token>
    Import the SO template here.
Do you have two minutes for a quick survey?
Take Survey