Deploying the on-premises gateway on Podman containers


Use the Podman container images to deploy the BMC Helix Intelligent Integrations on-premises gateway in your on-premises environment.

 

To prepare for the deployment

Before you deploy the on-premises gateway, review the system requirements and obtain the container images and utility files.​​​​​​

Task 1 (If you are a Helix subscriber): To deploy the on-premises gateway on Podman containers

  1. Go to the server where you want to deploy the on-premises gateway.
  2. Copy the following files that you obtained from BMC Support to a temporary directory, for example, /<IIGateway_INSTALL_DIR>:
    • Utility file: hii-bmc-<buildNumber>.zip
    • Container images: 
      On-premises gateway versionFile nameDescriptionDownload required?
      25.4bmc-hii-docker-images-<buildNumber>.tgzContainer images for deploying the on-premises gatewayYes
      bmc-hii-tp-docker-images-<buildNumber>.tgzContainer images for monitoring the on-premises gateway node and container health by using dashboards

      Yes, if you want to monitor the on-premises gateway

      Even if you don't obtain and load these images, you can continue monitoring the on-premises gateway instances by using events.

  3. Disable SELinux:
    1. Open the /etc/selinux/config file with a text editor.
    2. Set SELINUX to disabled.
      # This file controls the state of SELinux on the system.
      # SELINUX= can take one of these three values:
      #       enforcing - SELinux security policy is enforced.
      #       permissive - SELinux prints warnings instead of enforcing.
      #       disabled - No SELinux policy is loaded.
      SELINUX=disabled
      # SELINUXTYPE= can take one of these two values:
      #       targeted - Targeted processes are protected,
      #       mls - Multi Level Security protection.
      SELINUXTYPE=targeted

  4. Reboot the server:
    /sbin/reboot now

  5. Disable firewalld:
    systemctl disable firewalld

  6. Set the HOSTNAME variable to the fully-qualified domain name of the server where you are installing the on-premises gateway if not set already, as shown in the following example:
    echo "export HOSTNAME=hostA.mycompany.com" >> ~/.bash_profile
    source ~/.bash_profile

  7. Navigate to the <IIGateway_INSTALL_DIR> directory, and perform the following steps:

    1. Load the container images to deploy the on-premises gateway:
      podman load --input bmc-hii-docker-images-<buildNumber>.tgz
    2. (Optional) Perform the following steps if you plan to monitor the on-premises gateway node and container health by using dashboards:
      1. Untar the container images:
        tar -zxvf bmc-hii-tp-docker-images-<buildNumber>.tgz

      2. Load the container images:
        find ./bmc-hii-tp-docker-images-<VERSION> -type f -name "*.tgz" -exec podman load --input "{}" \;

  8. Extract the utility file, hii-bmc-<buildNumber>.zip:
    unzip hii-bmc-<buildNumber>.zip
  9.  

    Configure SSL.
    1. Perform one of the following actions to obtain the certificate and private keys:
      • Generate a self-signed certificate by using the following command:

        openssl req -x509 -sha256 -days 397 -nodes -newkey rsa:2048 -subj "/CN=<commonName>/C=<countryName>/L=<locality>" -keyout <hostName>.key -out <hostName>.crt

        In the command, replace  <hostName>  with the fully qualified domain name of the server where you are installing the on-premises gateway.

      • Obtain a CA-signed certificate and private keys from the Certificate Authority.
    2. Create the certs directory in the /<IIGateway_INSTALL_DIR>/hii/conf directory if it does not exist.
    3. Copy the certificate and private key you obtained to the /<IIGateway_INSTALL_DIR>/hii/conf/certs directory, and ensure that the names of the certificate and private key files are in the following format:
      < hostName>.crt and <hostName>.key
      <hostName> is the fully-qualified domain name of the server where you are installing the on-premises gateway.
    4. Change permissions on the /<IIGateway_INSTALL_DIR>/hii/conf/certs directory:

      chmod -R 755 /<IIGateway_INSTALL_DIR>/hii/conf/certs
    5. Open the hii/conf/nginx.conf file with a text editor. 
    6. Comment the following line:

      listen 443 ssl
    7. Uncomment the following line:

      # listen 7443 ssl
    8. Save and close the file.

    If you encounter any issues, see To troubleshoot SSL issues to resolve them

  10. (Optional) If you plan to deploy the on-premises gateway for which authentication is enabled, configure the protocol to be used (defaults to HTTP) for authorization between the on-premises gateway and the Identity Management System (IMS), which is part of the BMC Helix platform:
    1. Navigate to the /<IIGateway_INSTALL_DIR>/hii directory.
    2. Open the podman-compose.yaml file by using a text editor.
    3. Locate the mediator > environment section and search for the USE_HTTPS_IMS_URL parameter.
    4. Set the parameter to one of the following values: 

      • true: The HTTPS protocol is used for communication.
      • false (default): The HTTP protocol is used for communication.
    5. Locate the backup > environment section and add the USE_HTTPS_IMS_URL parameter if it does not exist.
    6. Set the parameter to one of the following values: 

      • true: The HTTPS protocol is used for communication.
      • false (default): The HTTP protocol is used for communication.
    7. Save and close the file.
  11. (Optional) If you plan to deploy an on-premises gateway with authentication enabled, and want a proxy server to route authentication requests from the on-premises gateway, perform the following steps: 
    1. Navigate to the /<IIGateway_INSTALL_DIR>/hii directory.
    2. Open the podman-compose.yaml file by using a text editor.
    3. Locate the authproxy > environment section and depending on whether the proxy server is an HTTP or HTTPS proxy, uncomment one of the following lines:
      # JAVA_TOOL_OPTIONS: -Dhttp.proxyHost=<PROXY_HOST> -Dhttp.proxyPort=<PROXY_PORT>
      Replace <PROXY_HOST> and <PROXY_PORT> with the proxy server name or IP address and port.

    4. Locate the mediator > environment section and depending on whether the proxy server is an HTTP or HTTPS proxy, uncomment one of the following lines:
      # JAVA_TOOL_OPTIONS: -Dhttp.proxyHost=<PROXY_HOST> -Dhttp.proxyPort=<PROXY_PORT>
      # JAVA_TOOL_OPTIONS: -Dhttps.proxyHost=<PROXY_HOST> -Dhttps.proxyPort=<PROXY_PORT>

      Replace <PROXY_HOST> and <PROXY_PORT> with the proxy server name or IP address and port.

    5. Save and close the file.
  12. Depending on whether you want to enable or disable the authentication for the on-premises gateway, perform one of the following steps :
    • To deploy the on-premises gateway for which authentication is enabled, perform the following steps:
      1. Navigate to the /<IIGateway_INSTALL_DIR>/hii/scripts directory.
      2. Run the gateway_deployment.sh script:
        ./gateway_deployment.sh
      3. Enter podman when prompted for the deployment method.
      4. Enter y to deploy the on-premises gateway.
      5. Enter the following information:
        • Access key and access secret key: Access key and secret key required to access the BMC Helix applications.
          For instructions about how to generate the access key and secret key, see Setting up access keys for programmatic access.

          Warning

          Important

          • The keys are generated in the following format: key:<access key>::<access secret key>,tenant id: <tenant ID>. Enter <access key> and <access secret key> as the values of the access key and access secret key.
          • The access key and access secret key must have the Administrators group and the Administrator role assigned.
        • Tenant Id: BMC Helix tenant ID.
          Copy the tenant ID from the access key (key:<access key>::<secret key>,tenant id:<tenant ID>).
        • Tenant URL: BMC Helix tenant URL.
        • Host name: Fully-qualified name of the server where you want to deploy the on-premises gateway.
          After you provide all the credentials, the on-premises gateway is deployed. Also, the cred.json, external.config, and nginx.config configuration files are backed up in the /<userHome>/iig_auth directory.
      6. Perform one of the following tasks:
        • (Optional) Go to step 13 if you plan to monitor the on-premises gateway node and container health by using dashboards.
        • Go to step 14 to configure the BMC Helix destination.
    • To deploy the on-premises gateway for which authentication is disabled, perform the following steps:
      1. Navigate to the /<IIGateway_INSTALL_DIR>/hii/scripts directory.
      2. Run the gateway_deployment.sh script:

        ./gateway_deployment.sh

         

      3. Enter podman when prompted for the deployment method.
      4. Enter n to start deploying the on-premises gateway with authentication is disabled.

        Warning
        Important

        You can enable the authentication after the deployment if needed. For more information, see To enable authentication for the on-premises gateway after the deployment if you are a Helix subscriber.

      5. Perform one of the following tasks:
        1. (Version 25.3.01 and later only) Go to step 13 if you want to monitor the on-premises gateway node and container health by using dashboards.
        2. Go to step 14 to configure the BMC Helix destination.
  13. (Optional) Perform the following steps to monitor the on-premises gateway node and container health by using dashboards:
    1. Navigate to the /<IIGateway_INSTALL_DIR>/hii/scripts directory.
    2. Run the gateway_monitoring_services_deployment.sh script:
      ./gateway_monitoring_services_deployment.sh
    3. Enter podman when prompted for the deployment method.
      After the deployment starts, if you see the following warning, ignore it: 
      Found orphan containers (swp-arangodb, swp-mediator, swp-fluentd, swp-ui, kafka-1, swp-nginx, swp-backup, zookeeper-1)
      for this project. If you removed or renamed this service in your compose file, you can run this command
      with the --remove-orphans flag to clean it up.
  14. Perform the following steps to configure the BMC Helix destination to which you want to send data collected by BMC Helix Intelligent Integrations:
    1. Create a file with the following contents and name it ade-default-destination-min.json:

      [
        {
          "entityKind": "Destination",
          "configWithSchema": {
            "config": {
              "connection": {
        "proxyUsername": "",
                "proxyPassword": "",
                "accessSecretKey": "CHANGEME",
                "allowUnsignedCertificate": false,
                "logResponses": false,
                "pipeLiningLimit": 1,
                "proxyHost": "",
                "logRequests": false,
                "timeout": {
                  "unit": "MINUTES",
                  "value": 15
                },
                "proxyPort": 8888,
                "maxResponseSize": 1000000,
                "usesHttps": true,
                "accessKey": "CHANGEME",
                "port": 443,
                "minConnections": 0,
                "tenantId": "CHANGEME",
                "connectingTimeout": {
                  "unit": "SECONDS",
                  "value": 30
                },
                "host": "CHANGEME - BMC Helix tenant host name - for example: swp-2021-1840-disceks1.abc.com",
                "poolTimeout": {
                  "unit": "MINUTES",
                  "value": 30
                },
                "maxOpenRequests": 1024,
                "maxConnections": 5,
                "maxRedirects": 5,
                "usesProxy": false
              },
              "poolTimeout": {
                "unit": "MINUTES",
                "value": 30
              }
            }
          },
          "instanceName": "BMC",
          "tenantId": "287c466d-7467-4e72-9e52-8357b4a27eaf",
          "typeName": "BmcDestination",
          "id": "CHANGEME - GENERATE NEW UUID using https://www.uuidgenerator.net/version4 e.g. 2643e089-18a8-4b0d-a58a-c022926812e0  MUST BE UNIQUE in a stack",
          "moduleId": "bmc"
        }
      ]
    2. Enter the values of the following parameters in the file:
      • proxyUsername: User name for the proxy.
      • proxyPassword: Password for the proxy.
      • proxyPort: Proxy port number.
      • proxyHost: Host name of the proxy.
      • usesProxy: Whether a proxy should be used for communication. Set its value to true or false depending on whether proxy should be used. 
    3. Replace the CHANGEME value of the following parameters with the generated values:
      • accessKeyand accessSecretKey: Access key and secret key required to access the BMC Helix applications.
        For instructions about how to generate the access key and secret key, see Setting up access keys for programmatic access.

        Warning

        Important

        • The keys are generated in the following format:  key:<access key>::<access secret key>,tenant id: <tenant ID>. Enter <access key> and <access secret key> as the values of the access key and access secret key.
        • The access key and access secret key must have the Administrators group and the Administrator role assigned
      • tenantId(first occurrence only): BMC Helix tenant ID.
        Copy the tenant ID from the access key (key:<access key>::<secret key>,tenant id: <tenant ID>) that you generated earlier and replace the CHANGEME occurrences with the copied tenant ID.
      • host: BMC Helix tenant host name.
        For example, if the tenant URL is 
        https://swp-2021-1840-disceks1.abc.com, replace CHANGEME with swp-2021-1840-disceks1.abc.com.
      • id: Universally unique identifier (UUID).
        Access https://www.uuidgenerator.net/version4 to generate UUID.
    4. Access the BMC Helix Intelligent Integrations UI by using the following URL:
      https://<hostName>:7443/swpui
      <hostName> is the fully-qualified domain name of the server where the on-premises gateway is deployed.
      For example, 
      https://ii-gateway-disceks1.abc.com:7443/swpui.

      Warning

      Important

      • BMC Helix Portal does not display any tile for the BMC Helix Intelligent Integrations on-premises gateway. Access the UI by using the URL specified in this step. 
      • If you encounter an issue when accessing or using BMC Helix Intelligent Integrations, see Troubleshooting the BMC Helix Intelligent Integrations issues.
    5. Import the ade-default-destination-min.json file by using the Backup/Restore option to create the destination.
      For more information, see Backing up and restoring connector configurations.

      Information
      Can I create more than one BMC destination for one instance of the on-premises gateway?

      No, BMC Helix Intelligent Integrations supports only one destination for one instance of on-premises gateway.

    6. Edit the destination connection details:
      1. On the CONNECTORS tab, click Configure Mediator ConfigureMediator_icon.pngon the DESTINATIONS panel.
      2. Replace the existing values in the Access Key and Access Secret Key fields with the values that you have copied in the ade-default-destination-min.json file in step 13(c). 
      3. Click Validate to validate the connection.
      4. Click Save & Close.
  15. If you are using SSL certificates, import them into the on-premises gateway.

Task 2: To import SSL certificates into the on-premises gateway

Warning

Important

Make sure that the version of the keytool utility installed on the on-premises gateway host matches the version available in the swp-authproxy container.

  1. Obtain the SSL certificates from the BMC Helix platform deployment which the on-premises gateway is part of and save it in the <IIGateway_INSTALL_DIR>hii/conf directory .
  2. (If authentication is enabled for the on-premises gateway) Copy the cacerts file present in the swp-authproxy container at /opt/java/openjdk/lib/security to the /<IIGateway_INSTALL_DIR>/hii/conf/certs directory using the following command:

    podman cp swp-authproxy:/opt/java/openjdk/lib/security/cacerts /<IIGateway_INSTALL_DIR>hii/conf/certs/cacerts_authproxy

  3. Navigate to the /<IIGateway_INSTALL_DIR>/hii/conf/certs directory.
  4. Import the certificates into the copied file by using the keytool utility:
    1. Import the certificates into the existing keystore (keystore_mediator.jks) by using the following command:

      keytool -importcert -file <certificate_name> -keystore keystore_mediator.jks -alias <alias_name>

      Replace the certificate_name with the certificate name that you obtained from the BMC Helix platform deployment.

    2. (If authentication is enabled for the on-premises gateway) Import the certificates into the cacerts_authproxy file by using the following command:keytool -importcert -file <certificate_name> -keystore cacerts_authproxy -alias <alias_name>

      Replace the certificate_name  with the certificate name that you obtained from the BMC Helix platform deployment.

  5. Open the /<IIGateway_INSTALL_DIR>/hii/podman-compose.yaml file with a text editor:
  6. (If authentication is enabled for the on-premises gateway) Search for the authproxy section and add the following line to the volumes section if it does not exist:
    - ./conf/certs/cacerts_authproxy:/opt/java/openjdk/lib/security/cacerts
  7. Save and close the podman-compose.yaml file.
  8. Restart the podman service by using the following commands:

    podman-compose -f podman-compose.yaml down
    podman-compose -f podman-compose.yaml up -d

To enable authentication for the on-premises gateway after the deployment if you are a Helix subscriber

  1. Stop the podman-compose service:
    podman compose -f podman-compose.yaml down
  2. Navigate to the /<IIGateway_INSTALL_DIR>/hii/scripts directory.
  3. Run the gateway_deployment.sh script:

    ./gateway_deployment.sh
  4. Enter podman when prompted for the deployment method.
  5. Enter y to deploy the on-premises gateway. 
  6. Enter the following information:
    • Access key and access secret key: Access key and secret key required to access the BMC Helix applications.
      For instructions about how to generate the access key and secret key, see Setting up access keys for programmatic access.

      Warning

      Important

      The keys are generated in the following format: key:<access key>::<access secret key>,tenant id: <tenant ID>. Enter <access key> and <access secret key> as the values of the access key and access secret key.

      The access key and access secret key must have the Administrators group and the Administrator role assigned.

    • Tenant Id: BMC Helix tenant ID.
      Copy the tenant ID from the access key (key:<access key>::<secret key>,tenant id: <tenant ID>).
    • Tenant URL: BMC Helix tenant URL.
    • Host name: Fully-qualified domain name of the server where you want to deploy the on-premises gateway.
      After you provide all the credentials, the on-premises gateway is deployed. Also, the cred.json, external.config, and nginx.config configuration files are backed up in the /<userHome>/iig_auth directory.
  7. If you are using SSL certificates, import them into the on-premises gateway.

To troubleshoot SSL issues

Problem

Possible root cause

Possible resolution

Containers restart due to the permission-denied errors.

Containers don't have permission to read the mounted directory.

  1. Grant read permission to the mounted directory on the host.
  2. Disable SELinux.

You are not able to access the URL with the host name.

The firewall is blocking the connection.

Disable the firewall.

The swp-nginx container is not starting.

The nginx.conf file contains an invalid configuration.

Check the swp-nginx container logs.

Sometimes, missing semi-colon(;) at the end of the line causes an issue.

Where to go from here

After you deploy the on-premises gateway, perform the following tasks:

 

 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Helix Intelligent Integrations 26.1