This documentation supports an earlier version of BMC Helix IT Service Management on-premises deployment. To view the documentation for the latest version, select 23.3.04 from the Product version picker.


Installing BMC Helix Platform Common services 24.1.00


BMC Helix Platform Common Services installation is a pre-requisite for BMC Helix Service Management 23.3.01 installation. 

Important

If you are performing a combined deployment of BMC Helix Service Management and BMC Helix IT Operations Management, and have installed BMC Helix IT Operations Management, do not install BMC Helix Platform Common Services again.

BMC Helix Platform Common Services are deployed with the BMC Helix IT Operations Management deployment.


The following video (3:23) provides a summary of installing BMC Helix Platform Common Services:

icon_play.pnghttps://youtu.be/Vd5HG7txsdg

Before you begin

  • Make sure that you have created a namespace to install BMC Helix Platform Common Services services.
  • Verify that nothing is installed in the namespace by using the following command:

    kubectl get all -n <namespace>
  • Make sure that you have configured the nginx-configuration configmap.
    For information about the nginx-configuration configmap parameter value requirements, see System-requirements.
  • Make sure that you have permission to create ServiceAccount, Role, and RoleBinding in the BMC Helix Platform namespace.
    If you do not have permission, create a Service account, Role, and RoleBinding.

Important

Do not perform these tasks if you have already installed BMC Helix IT Operations Management (BMC Helix ITOM).

To create ServiceAccount, Role, and RoleBinding

To install BMC Helix Platform Common Servicesyou must have permission to create ServiceAccount, Role, and RoleBinding in the BMC Helix Platform namespace.

If you do not have permission, an administrator must perform the following steps to create a Service account, Role, and RoleBinding to enable you to install BMC Helix Platform Common Services:

  1. In the commons/yaml_files/serviceAccount.yaml and commons/yaml_files/role_rolebinding.yaml file replace the following values:
    1. __SERVICE_ACCOUNT__ with the name of the service account that you want to create.
    2. __NAMESPACE__ with the BMC Helix Platform namespace.
  2. To create a service account, run the following command:

    kubectl apply -f serviceAccount.yaml
  3. To create role and rolebinding, run the following command:

    kubectl apply -f role_rolebinding.yaml
  4. When you set the CUSTOM_SERVICEACCOUNT_NAME parameter in the infra.config file, replace helix-onprem-sa value with the service account name that you created.

Important

The uninstallation script deletes the custom service account.

If you have created a custom service account, after performing an uninstallation, you must recreate the custom service account.

Task 1: To download and extract the deployment manager

  1. Log in to the controller or bastion machine from where the Kubernetes cluster is accessible.
  2. Download the installation files from BMC Electronic Product Distribution (EPD) and extract it to a temporary directory, if you haven't already.
    1. Download the deployment manager helix-on-prem-deployment-manager-24.1.00-103.sh by selecting the BMC Helix Platform Services for Service Management Version 24.1.00 option.
    1. Download the hotfix itom-predeploy-hotfix-24.1.00.001-11.tar.gz. by selecting the BMC Helix Platform Services for Service Management Performance Hotfix Version 24.1.00 option.
      This hotfix addresses the following issues:
    2. If you have configured disaster recovery, download the hotfix-24.1.00.004-12-Post.tar.gz hotfix file by selecting the BMC Helix Platform Services for Service Management Disaster Recovery Hotfix Version 24.1.00 option.
      The file 
      contains disaster recovery deployment security and performance enhancements.
      To download the files from EPD, see Downloading-the-installation-files.
  1. Run the following command to change the permission of the downloaded file:

    chmod a+x helix-on-prem-deployment-manager-<release_version>.sh


  2. Self-extract the deployment manager. Run the following command:

    ./helix-on-prem-deployment-manager-24.1.00-103.sh
     cd helix-on-prem-deployment-manager
  3. To extract the hotfix, run the following command:

    tar -xvf itom-predeploy-hotfix-24.1.00.001-11.tar.gz 

    The updated files will replace the affected files in the workspace directory.

Task 2: To prepare for password encryption

  1. Go to the commons/certs directory and open the secrets.txt file.

    Important

    Use the secrets.txt file that you downloaded along with the deployment manager.

  2. Add the following passwords to this file and then save it:

    Best practice
    The secrets.txt file is deleted after installation. You will need the values set in the secrets.txt file for future upgrades. Hence, save the secrets.txt in a secure location. 
    The [confluence_table-plus] macro is a standalone macro and it cannot be used inline. Click on this message for details.

    Important

    Make sure that you provide all passwords in the secrets.txt file. If you fail to add any password in the secrets.txt file, the deployment fails with the following error:
    password_encry_failure.png

    Sample secrets.txt file

    # cat commons/certs/secrets.txt
    #Please put the passwords in this file
    IMAGE_REGISTRY_PASSWORD=password123
    SMTP_PASSWORD=test123
    SMART_SYSTEM_PASSWORD=password123
    PG_PASSWD=pGTest2020
    KIBANA_PASSWORD=kibana123
    MINIO_ACCESS_KEY=admin
    MINIO_SECRET_KEY=admin123
    # ES_JKS_PASSWORD is required only when you are using Custom CA certificate, else keep value as ES_JKS_PASSWORD=""
    ES_JKS_PASSWORD=test@12

    ################## End OF THE FILE ####################

Task 3: To install BMC Helix Platform Common Services

  1. In the helix-on-prem-deployment-manager/configs/infra.config file, modify the following parameters that are environment-specific.

    Important

    • The following load balancer hosts are required. You do not need any subdomains.
      • LB_HOST
        Ensure that the LB_HOST value is not the same as the tenant URL.
      • TMS_LB_HOST
      • MINIO_LB_HOST
      • MINIO_API_LB_HOST
      • KIBANA_LB_HOST
      • Tenant URL that is derived based on the following parameters from the infra.config file:
        $COMPANY_NAME-$TENANT_TYPE-$ENVIRONMENT.$DOMAIN
    • Make sure that you have created a storage class.
      BMC supports a Bring-Your-Own-Storage-Class model, for any block storage supporting high performance IOPS. NFS is not supported for persistent volumes. CephRBD is certified by BMC.
  2. In the helix-on-prem-deployment-manager/configs/deployment.config file, modify the following parameters:

    Parameter

    Required value

    Infra services options

    DEPLOYMENT_SIZE

    itsmcompact, itsmsmall, or itsmxlarge

    If you are installing BMC Helix Platform Common Service in a nonproduction environment, specify the value as itsmcompact.

    If you are installing BMC Helix Platform Common Service in a production environment, specify the value as itsmsmall.

    If you are installing BMC Helix Service Management extra large size, specify the value as itsmlarge.

    BMC Helix Service Managementdoes not require BMC Helix Platform Common Services resources with deployment sizes such as medium or large. To optimize resources, the deployment sizes, itsmcompact and itsmsmall, are provided for BMC Helix Service Management installation. The itsmcompact size does not support high availability. Use itsmcompact for nonproduction environments. The itsmsmall size supports high availability, so use this size for production environments.

    INFRA
    yes
    _PTPOSTGRESS
    yes
    _KAFKA
    yes
    _REDIS
    yes
    _RSSO
    yes
    _ELASTICSEARCH
    yes
    _VICTORIAMETRICS
    yes

    Important: If you are not using BMC Helix ITSM Insights, set this parameter to No.

    _MINIO
    yes

    BMC Helix Dashboard services

    HELIX_DASHBOARD_SERVICES
    yes

    BMC Helix ITSM Insights

    (Optional)ITSMINSIGHT_SERVICES

    yes 

    If you are not using BMC Helix ITSM Insights, set the ITSMINSIGHT_SERVICES and _VICTORIAMETRICS parameter values to No.

    AR System services

    ARSERVICES
    yes

    Important: Make sure that you specify the value as yes. This option registers the BMC Helix Innovation Suite services in BMC Helix Platform.

    BMC Helix Logging

    BMC_HELIX_LOGGING
    yes
  3. Install the product by running the following command:

    ./deployment-manager.sh

After the BMC Helix Platform Common Service are deployed, the tenant administrator receives the following emails:

  • An email with details about the BMC Helix Platform account
  • An email to change the BMC Helix Platform account password at the first login

All installation logs are located in the following directory:

helix-on-prem-deployment-manager/logs

To apply the Disaster Recovery hotfix

The BMC Helix Platform Services for Service Management Disaster Recovery Hotfix Version 24.1.00 provides enhanced security and performance for disaster recovery deployment.
Apply the hotfix 
only if you have configured disaster recovery.

Perform the following steps:

  1. If you have already enabled disaster recovery, disable it:
    1. Go to /helix-on-prem-deployment-manager/utilities/disaster-recovery.
    2. Run the following command:

      ./disaster-recovery.sh disable 
  2. Make sure you have downloaded the hotfix-24.1.00.004-12-Post.tar.gz file from EPD.
  3. To extract the hotfix file, run the following command:

    tar xvf hotfix-24.1.00.004-12-Post.tar.gz

    The new-image-list.txt file present in the extracted hotfix folder contains the following container images:

    • 2410004-v1-victoriametrics-vmbackupmanager-v1.100.1   
    • 2410004-v1-bitnami-minio-2024.03.21-rockylinux-9   
    • 2410004-v1-victoriametrics-vmrestore-v1.99.0-enterprise
  4. Synchronize your local repository with BMC Docker Trusted Registry (DTR).
    See Setting-up-a-Harbor-repository-to-synchronize-container-images.

  5. To execute the sh file, run the following command:

    bash hf_script.sh /<path to 24.1 deployment manager directory>/helix-on-prem-deployment-manager

    Replace <path to 24.1 deployment manager directory> with the full path of the directory where you have saved the 24.1 deployment manager.
    Example:

    bash hf_script.sh /data/24.1.00/helix-on-prem-deployment-manager

A copy of the directory helix-on-prem-deployment-manager gets created in the path specified in the command.

In the example, a new directory helix-on-prem-deployment-manager_HF1 gets created at /data/24.1.00.
No changes are made to the original directory specified in the command.

Important

To enable disaster recovery, use the newly created installer folder.


Sample configuration files

Sample infra.config file
#Docker registry details
#IMAGE_REGISTRY_HOST=containers.bmc.com
#IMAGE_REGISTRY_USERNAME=<user name to access registry>
IMAGE_REGISTRY_HOST=
IMAGE_REGISTRY_USERNAME=

# keep double quotes in all variables if not required, don't leave them blank or empty
#Infra details
#NAMESPACE=dark-helmet
#LB_HOST=host-india-app.mydomain.com
#LB_PORT=443
#TMS_LB_HOST=tms-private-poc.mydomain.com
#DOMAIN=mydomain.com
#MINIO_LB_HOST=minio-private-poc.mydomain.com
#KIBANA_LB_HOST=kibana-private-poc.mydomain.com
#ENVIRONMENT=<Type of environment>
# The values of ENVIRONMENT is based on kind of setup you are going to create e.g. dev, qa, production, poc, multi-service, canary etc. (this is not based on deployment size compact, small, medium, large etc)
ENVIRONMENT=dev
NAMESPACE=
LB_HOST=
LB_PORT=
TMS_LB_HOST=
DOMAIN=
# If minio web access required .Please give LB (e.g.minio.domain.com )which has DNS entry otherwise keep blank "".
MINIO_LB_HOST=
# Use minio api ingress(minio-api.domain.com)
MINIO_API_LB_HOST=
KIBANA_LB_HOST=

#Cluster type can have values openshift or ocp for OpenShift.
#If CLUSTER_TYPE is not set to openshift or ocp then cluster type is treated as kubernetes cluster.
CLUSTER_TYPE=

#Tenant details for onboarding
#COMPANY_NAME=<tenant company name same as in tenant discover appliance url>
#TENANT_EMAIL=<tenant email address>
#TENANT_FIRST_NAME=<tenant first name>
#TENANT_LAST_NAME=<tenant last name>
## TENANT_TYPE= <Tenant type in tenant url same as in tenant discovery appliance url>
## Please use only alphanumeric value in COMPANY_NAME
COMPANY_NAME=
TENANT_EMAIL=
TENANT_FIRST_NAME=
TENANT_LAST_NAME=
TENANT_TYPE=
# Ensure that the value of COUNTRY is enclosed within double quotes
COUNTRY="Virgin Islands, U.S."

#SMTP Config
#SMTP_HOST=<SMTP host name of IP address accessible from cluster>
#SMTP_PORT=<SMTP server port, e.g. 25>
#SMTP_USERNAME=<SMTP user name>
#SMTP_FROM_EMAIL=<SMTP from email address>
#SMTP_TLS=<true/false>
#This below variable is used by portal team
#SMTP_AUTH=<PLAIN or LOGIN or NONE>
# If you use NONE it will not skip the validation of SMTP but it means that your organization allows you to send email without SMTP authentication.
# PLAIN or LOGIN is used when you have authenticated SMTP user and SMTP password
#This variable is used for getting report email to dahsboard team by default value is true
#SMTP_AUTH_DASHBOARD=<true or false>
#OPS_GROUP_EMAIL=<ops email address>
#APPROVAL_GROUP_EMAIL=<email address for approval>
SMTP_HOST=
SMTP_PORT=
#Ensure blank values for SMTP username password is in double quotes
SMTP_USERNAME=
SMTP_FROM_EMAIL=
## SMTP_TLS value can be true or false.
## If SMTP_TLS is set to true and certificate of SMTP_HOST is signed by a custom or self-signed CA then
## ensure to append custom or self-signed CA certificate (full CA chain) to commons/certs/custom_cacert.pem file.
SMTP_TLS=false
SMTP_AUTH_DASHBOARD=true
SMTP_AUTH=
OPS_GROUP_EMAIL=
APPROVAL_GROUP_EMAIL=

#storage class, set value as per storage class in cluster
#PG_STORAGE_CLASS=onprem-storage
#VMSTORAGE_STORAGE_CLASS=onprem-storage
#VMAGGSTORAGE_STORAGE_CLASS=onprem-storage
#ES_MASTER_STORAGE_CLASS=onprem-storage
#ES_DATA_STORAGE_CLASS=onprem-storage
#MINIO_STORAGE_CLASS=onprem-storage
#EFS_STORAGE_CLASS=onprem-storage
#REDIS_HA_GLOBAL_STORAGECLASS=onprem-storage
#KAFKA_STORAGECLASS=onprem-storage
#ESLOG_MASTER_STORAGE_CLASS=onprem-storage
#ESLOG_DATA_STORAGE_CLASS=onprem-storage
#AIOPS_STORAGE_CLASS=onprem-storage

PG_STORAGE_CLASS=
VMSTORAGE_STORAGE_CLASS=
VMAGGSTORAGE_STORAGE_CLASS=
ES_MASTER_STORAGE_CLASS=
ES_DATA_STORAGE_CLASS=
MINIO_STORAGE_CLASS=
EFS_STORAGE_CLASS=
REDIS_HA_GLOBAL_STORAGECLASS=
KAFKA_STORAGECLASS=
ESLOG_MASTER_STORAGE_CLASS=
ESLOG_DATA_STORAGE_CLASS=
AIOPS_STORAGE_CLASS=

#Optimize storage details
#OPT_STORAGE_CLASS=onprem-storage
OPT_STORAGE_CLASS=

#CUSTOM_CA_SIGNED_CERT_IN_USE=true/false
#if you are using self-signed/custom CA signed certificate please set it to true,
#also ensure you have copied custom CA certificate file at commons/certs directory with file name custom_cacert.pem i.e. commons/certs/custom_cacert.pem
CUSTOM_CA_SIGNED_CERT_IN_USE=false

# If there are no permissions to create ServiceAccount, Role, RoleBinding then, create a serviceaccount and assign it to CUSTOM_SERVICEACCOUNT_NAME by replacing default value of helix_onprem_sa.
# Ensure to create a role and rolebinding from file commons/yaml_files/role_rolebinding.yaml and a serviceAccount from file commons/yaml_files/serviceAccount.yaml.
# If there are permissions to create ServiceAccount, Role, RoleBinding then do not change CUSTOM_SERVICEACCOUNT_NAME from value helix-onprem-sa.
CUSTOM_SERVICEACCOUNT_NAME=helix-onprem-sa

# If you want to use custom JAVA keystore for "RSSO SAML keystore configuration", then you must set variable RSSO_CUSTOM_JAVA_KEYSTORE_IN_USE to true
# and put the custom java keystore file at commons/certs directory with file name rsso_custom_java_keystore
# i.e. commons/certs/rsso_custom_java_keystore
# The file commons/certs/rsso_custom_java_keystore will be mounted inside RSSO container at location /etc/rsso_custom_java_keystore
# SAML Keystore - this is the Keystore used for reading SAML-specific certificates/keys. So, it's an application-level Keystore, used directly by the app.
# While JVM Keystore contains certificates for HTTPS connections, the SAML Keystore is used for storing signing and encryption certificates for communication with SAML v2 IdP.
RSSO_CUSTOM_JAVA_KEYSTORE_IN_USE=false  

# Smart Graph
#SMART_SYSTEM_USERNAME=system
SMART_SYSTEM_USERNAME=""

# Ingress class used while deploying Ingress controller
INGRESS_CLASS=nginx

#Binary paths on your system
#HELM_BIN=/usr/local/bin/helm
#KUBECTL_BIN=/usr/bin/kubectl
HELM_BIN=
KUBECTL_BIN=
#OC_BIN path should be set if CLUSTER_TYPE is openshift or ocp
#OC_BIN=/usr/local/sbin/oc
OC_BIN=

# Infra components will run with below Security Context.
# Below 3 variables are considered only for OpenShift cluster
# i.e. if CLUSTER_TYPE is openshift or ocp
# Set correct context as per the OpenShift namespace.
# Else RUN_AS_USER, RUN_AS_GROUP and FS_GROUP must be null.
RUN_AS_USER=null
RUN_AS_GROUP=null
FS_GROUP=null

# Optimize Security Context:
# OPT_FSGROUP must have value 87654321 if CLUSTER_TYPE is openshift or ocp and INSTALL_MODE is upgrade and fresh deployment was performed with 22.2.01 version
# Else OPT_FSGROUP must have value 1001
OPT_FSGROUP=1001

# If CLUSTER_TYPE is openshift or ocp  and INSTALL_MODE is fresh then ML_FSGROUP must be same as FS_GROUP mentioned above, else ML_FSGROUP must have value 998
ML_FSGROUP=998

################################### DO NOT CHANGE ANYTHING BELOW THIS LINE ##########################################

#Patroni Postgres config
PG_HOSTNAME=postgres-bmc-pg-ha-pool
PG_USER=postgres
PG_DATABASE=postgres


#Redis HA config
REDIS_HA_HOSTNAME=redis-redis-ha-haproxy

#Kafka & Zookeeper config
KAFKA_HOSTNAME=kafka
ZOOKEEPER_HOSTNAME=kafka-zookeeper

#RSSO Config
RSSO_PG_DB=ade_rsso

#Elasticsearch config
ES_EVENTS_HOSTNAME=elasticsearch-events-opendistro-es-data-svc
ES_LOGS_HOSTNAME=elasticsearch-logs-opendistro-es-data-svc

#MinIO config
MINIO_HOSTNAME=minio

# Misc
IMAGE_REGISTRY_SECRET=bmc-dtrhub
TENANT_PHONE=1234567890
LOGIN_ID=hannah_admin

Sample deployment.config file
#Common config begin
#Size of deployment, values are compact, small, medium, large, itsmcompact, and itsmsmall
DEPLOYMENT_SIZE=small

#Docker registry project details
IMAGE_REGISTRY_PROJECT=bmc
IMAGE_REGISTRY_ORG=lp0lz
CORE_IMAGE_REGISTRY_ORG=lp0lz
IA_IMAGE_REGISTRY_ORG=lp0oz
OPTIMIZE_IMAGE_REGISTRY_ORG=lp0pz
BHOM_IMAGE_REGISTRY_ORG=lp0mz
AIOPS_IMAGE_REGISTRY_ORG=la0cz

#Common config end

#Install mode as fresh or upgrade
INSTALL_MODE=fresh

#Flag controlling infra services installation
INFRA=yes

#Flag controlling individual infra services installation
_PTPOSTGRESS=yes
_KAFKA=yes
_REDIS=yes
_RSSO=yes
_VICTORIAMETRICS=yes
_ELASTICSEARCH=yes
_MINIO=yes

# Do not make changes to service flags it will break dependency
#Flag controlling helix dashboard services installation
HELIX_DASHBOARD_SERVICES=yes

#Flag controlling itsminsight services installation
ITSMINSIGHT_SERVICES=no

#Flag controlling aiops services installation
AIOPS_SERVICES=no

#Flag controlling monitor product installation
MONITOR=no

#Flag controlling intelligentintegrations services installation
INTELLI_INT_SERVICES=no

#Flag controlling intelligent automation product installation
INTELLIGENT_AUTOMATION=no

#Flag controlling bmc-helix-logging product installation
BMC_HELIX_LOGGING=yes

#Flag Controlling optimize installation
OPTIMIZE=no

#Flag AR Services installation
ARSERVICES=yes

Where to go from here

Next task

Back to process

If you are finished setting up the installation environment, return to the appropriate installation, update, or upgrade process:


 

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