Backing up and restoring UI configuration data (OCP)

Agile Service Manager on OCP includes a backup facility, which lets you backup UI configuration settings such as user preferences, topology tools, custom icons, relationship types, rules, and advanced topology settings.

About this task

The UI configuration data is stored in the Cassandra database and therefore backed up with the rest of the data, as described in the backup and restore topics. However, using the following procedure, you can test UI customizations in a staging environment, before exporting them back into the production environment.
Limitation: File observer files and trusted certificates are not included in the backup of observer jobs. Restore or copy these manually, or else affected jobs will not run once restored.
When to export configuration data
Agile Service Manager UI configuration settings are stored in the topology service database. If that database is deleted, the configuration settings are also deleted. You may therefore want to create a backup of configuration data if you intend to conduct testing that may involve changes to your database. After installing or rebuilding a new database, you can then restore the configuration data.
You can export configuration data as part of your data protection strategy, to provide a backup in case of data corruption or accidental data deletion.
You can export configuration data from a staging system in order to then import it into a live system.
Export parameters
All parameters are optional.
Note: You can run the backup_ui_config command from its location (/opt/ibm/graph.tools/bin) without setting any parameters. If you do, all Agile Service Manager UI configuration settings will be exported to the asm_ui_config.txt default text file.
config
The -config flag allows the type of configuration you want to export to be specified.
By default all UI configuration settings are backed up.
Settings for -config <config_type>
Backs up the following Agile Service Manager UI configuration settings
all
All UI configurations (default)
tools
Topology tools definitions
icons
Custom icon definitions
types
Resource type definitions
edges
Edge type definitions
links
Relationship type definitions
rules
Rule definitions
preferences
User preferences
settings
Advanced topology settings
criticality
Business criticality definitions
templates
Resource group template definitions
jobs
Observer job definitions
plainpassword
When exporting observer job definitions, use this parameter to export the passwords as plain text.
Important: This parameter is for development environments only. For production environments, ensure that the encryption keys for observer job passwords between the source and target system match. See the following topic for more information on Changing encryption keys and passwords.
out
The -out flag is the name of the backup file name to create.
The name must be a file name only, with no directory paths.
The default output file name is asm_ui_config.txt, and the output location is fixed as /opt/ibm/netcool/asm/data/tools.
Note: If the file already exists, the tool will indicate this and quit. For the existing file to be overwritten with new output, use the -force parameter.
force
If you set the -force parameter, the tool overwrites an existing output file with new content.
verbose
The -verbose flag runs the tool in verbose mode, whereby extra log messages are printed to the shell during execution.
This parameter is useful if a problem occurs while running the tool, and you want to re-run it with extra information made available.
Import parameters
These parameters apply to all backed up UI data other than custom filters.
file
The -file parameter is the name of the backup file from which to import definitions. It must be a file name only with no directory paths included, and it must exist in the tools data directory (/opt/ibm/netcool/asm/data/tools).
overwrite
By default, as the import tool reads the backup file it looks up each item in the topology service to see if it already exists. Any configuration definitions which already exist are not updated.
However, if you set the -overwrite flag, the existing definitions are overwritten with the values from the backup file.
verbose
The -verbose flag runs the tool in verbose mode, whereby extra log messages are printed to the shell during execution.
Useful if a problem occurs running the tool and you want to re-run it with extra information made available.

Procedure

Remember: The backup and import scripts ('backup_ui_config` and `import_ui_config`) are in the /opt/ibm/graph.tools/bin directory, and the output file is placed in the /opt/ibm/netcool/asm/data/tools directory.

  1. Find the name of the topology pod, as in the following example:
    $ oc get pod --namespace default |grep topology-topology
    Note: Multiple pod names might be returned, in which case choose any one pod for the following steps.
  2. Run the backup tool (backup_ui_config).
    Tip: You can run the backup script without any options set, which backs up all UI configuration data to the default location:
    backup_ui_config
    The following example shows how to run a backup script with specific parameters defined.
    usage: backup_ui_config [-config <config_type>] [-out <output_filename>] [-plainpassword] [-force] [-verbose]
    
    where 'config-type' can be set to one of the following:
    
    all         - backup all ASM UI configuration (default)
    tools       - backup topology tools definitions
    icons       - backup custom icon definitions
    types       - backup resource type definitions
    edges       - backup edge type definitions
    links       - backup relationship type definitions
    rules       - backup rule definitions
    preferences - backup user preferences
    settings    - backup advanced settings
    criticality - backup business criticality definitions
    jobs        - backup observer job definitions
    templates   - backup resource group templates
    
    Example: The following example backs up the rule definitions:
    oc exec -ti noi-507-topology-topology-688d44474-t2m5c -- /opt/ibm/graph.tools/bin/backup_ui_config -config rules -out rules_19122022.json
    Defaulted container "noi-507-topology-topology" out of: noi-507-topology-topology, wait-for-cassandra (init), wait-for-kafka (init)
    INFO    : Topology Service REST host detected: localhost:8080
    INFO    : Topology Service tenant ID detected: cfd95b7e-3bc7-4006-a4a8-a73a79c71255
    INFO    : Backing up merge rule: dockerId
    INFO    : Backing up merge rule: aaiFileHpnfvdSdcWriterule
    INFO    : Backing up merge rule: merge-ip
    INFO    : Backing up merge rule: almExternalId
    INFO    : Backing up merge rule: dockerFromJenkins
    INFO    : Backing up merge rule: merge-host
    INFO    : Backing up match tokens rule: as-match-token-season
    INFO    : Backing up match tokens rule: itnmInterfaceTokens
    INFO    : Backing up match tokens rule: k8ServiceName
    INFO    : Backing up match tokens rule: itnmHostCardTokens
    INFO    : Backing up match tokens rule: gitlabResourceToken
    INFO    : Backing up match tokens rule: itnmIPTokens
    INFO    : Backing up match tokens rule: itnmNetworkTokens
    INFO    : Backing up match tokens rule: itnmGenericTokens
    INFO    : Backing up match tokens rule: sevoneHostTokens
    INFO    : Backing up tags rule: as-tag-rule-1
    INFO    : Backing up tags rule: gitlabResourceTag
    INFO    : Backing up tags rule: hpnfvdResourceTag
    INFO    : Backing up tags rule: vnfTypeTag
    INFO    : No history rule definitions were found
    INFO    : Backing up events filter rule: event-filter-jenkins-build
    INFO    : Backing up events filter rule: event-filter-awx-job
    INFO    : No business criticality rule definitions were found
    INFO    : Output file has been created: /opt/ibm/netcool/asm/data/tools/rules_19122022.json
    
    Program complete.
    
    To copy the resulting backup file from the container for storage elsewhere
    oc cp noi-507-topology-topology-688d44474-t2m5c:/opt/ibm/netcool/asm/data/tools/rules_19122022.json /tmp/backups/19122022/rules_19122022.json
  3. To save a copy of your backup, copy the file out of the topology container using the oc cp command.
    For example:
    $ oc cp noi-topology-topology-577dc5497b-2wbxk:/opt/ibm/netcool/asm/data/tools/backup-20180908.json /tmp/backup-20180809.json
     $ find /tmp/backup*
     /tmp/backup-20180809.json
  4. To import files, copy them into the /opt/ibm/netcool/asm/data/tools location inside the container:
    $ oc cp /tmp/backup-20180809.json noi-topology-topology-577dc5497b-2wbxk:/opt/ibm/netcool/asm/data/tools/backup-20180909.json 
     $ oc exec -ti noi-topology-topology-577dc5497b-2wbxk -- find /opt/ibm/netcool/asm/data/tools/
     /opt/ibm/netcool/asm/data/tools/backup-20180908.json
     /opt/ibm/netcool/asm/data/tools/backup-20180909.json
  5. Run the import tool, as in the following example:
    $ oc exec -ti noi-topology-topology-577dc5497b-2wbxk -- /opt/ibm/graph.tools/bin/import_ui_config -file backup-20180908.json -overwrite 
     INFO  : Topology Service REST host detected: localhost:8080 
     INFO  : Topology Service tenant ID detected: cfd95b7e-3bc7-4006-a4a8-a73a79c71255 
     INFO  : Skipping import of entity type because it matches the existing definition: container 
     INFO  : Skipping import of entity type because it matches the existing definition: cpu 
     INFO  : Skipping import of entity type because it matches the existing definition: deployment 
     INFO  : Skipping import of entity type because it matches the existing definition: image 
     INFO  : Skipping import of entity type because it matches the existing definition: networkinterface 
     INFO  : Skipping import of entity type because it matches the existing definition: psu 
     INFO  : Skipping import of entity type because it matches the existing definition: router 
     INFO  : Skipping import of entity type because it matches the existing definition: sensor 
     INFO  : Skipping import of entity type because it matches the existing definition: server 
     INFO  : Skipping import of entity type because it matches the existing definition: service 
     INFO  : Skipping import of entity type because it matches the existing definition: subnet 
     INFO  : Skipping import of entity type because it matches the existing definition: switch 
     INFO  : Skipping import of entity type because it matches the existing definition: vlan 
     INFO  : Skipping import of entity type because it matches the existing definition: vpn 
    
     Program complete.