Overview

Skill Level: Beginner

Containerized MDM v11.6 Feature Pack 7, in one of its formats, is extracted and can be deployed to point to a remote database, provides user options to provide custom configurations and installs user interfaces based on end user selection.

Ingredients

1. A machine on which you can install Docker, Docker Compose and IBM InfoSphere Master Data Management v11.6 Feature Pack 7 as a container.

2. A DB2 database with tablespaces corresponding to MDM in place.  Note that it is also possible to a database that already populated with MDM data.

Step-by-step

  1. Install Docker and Docker Compose

    MDM uses Docker for containerization.  MDM images corresponding to applications and database are available in extracted and deployed formats as Docker images.  Docker containers can be created using these images.

    Docker Compose is used when multiple containers are involved.

    Details on installing Docker and Docker Compose are available at https://docs.docker.com  We will have an overview on how to install them on RHEL here.

    Install Docker:

    Issue the below commands to install Docker on RHEL

    sudo yum install -y yum-utils \
    device-mapper-persistent-data \
    lvm2

    sudo yum-config-manager \
    –add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

    sudo yum install docker-ce

    sudo systemctl start docker

    sudo docker run hello-world

     

    Install Docker Compose:

    Issue the below commands to install Docker Compose on RHEL.

    sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

    sudo chmod +x /usr/local/bin/docker-compose

    docker-compose -version

     

  2. Download the MDM image

    Download the required MDM docker image and the yaml files from Passport Advantage.  Load the docker image into the docker repository using

    docker load < <FILE>

    Issue the below commands to list and confirm the presence of the docker images:

    docker images

    For this sample, the MDM image required is installable-mdm:11.6.0.7

  3. Key Details on the docker-compose.yml file

    The mdm-installable-remotedb.yml file has one service in it, namely wasmdm, corresponding to Installable MDM. 

    The wasmdm service provides details including docker image name, port mapping between host and container, container name, host name, environment variables, networks, aliases and volumes.

    Volumes are used to save the data from the container to the host.  When docker-compose up is invoked, you will be able to see the volumes being created.  You can then check the directory /var/lib/docker/volumes in the host to check the volumes created and then go through the contents in each volume.

     

  4. Accept License to use InfoSphere MDM v11.6 Feature Pack 7

    The environment variable ACCEPT_LICENSE is present in the wasmdm service in the docker compose yaml file.  The value of this variable has to be set to “YES” to get MDM up and running.   Edit the docker-compose.yml file and set the value of enviroment variable ACCEPT_LICENSE to “YES” before invoking docker compose

    ACCEPT_LICENSE: “YES”

    The MDM License files are available for perusal under <MDM_INSTALL_DIR>/MDMLicense folder in the MDM container.  You can also find it at /var/lib/docker/volumes/<FOLDER>_MDMLicense after the container starts up as it is declared as a volume.

  5. docker-compose up

    The MDM installable image contains a WebSphere Application Server Base v9.0.0.0.8 instance along with a Profile and MDM in extracted format pointing to the WAS Profile with certain default values for database related properties in mdm-install.properties file.

    To bring up a container using this image, issue the below command in the directory that holds the yml file:

    COMPOSE_HTTP_TIMEOUT=200 docker-compose -f mdm-installable-remotedb.yml up

    Note that it is advised to set the value of COMPOSE_HTTP_TIMEOUT which is an environment variable corresponding to Docker Compose to 200.

    When this command is executed, the network, volumes and container are created.  The WebSphere Application Server on which MDM is configured to be deployed is started.

     

    Installed_MDM

  6. Deploy MDM: Execute Configure_MDM_Interactive.sh from the /tmp directory in the container

    The container created has a WAS Base Profile with credentials mdmadmin/mdmadmin and MDM extracted under folder /opt/IBM/MDM.  MDM has to be deployed on the WAS Base Profile and a custom database.  The container gives you the flexibility to point to a custom database that already has MDM data populated in it. In order to point to a custom database, provide value for the below prompt as n.

    Are you using the provided Docker db2 container for this MDM instance? [Valid options: y,n]

     

    Details on the database host, port, name, user, schema, password and tablespace names have to be provided as values to a script /tmp/Configure_MDM_Interactive.sh that enables MDM deployment  The container also provides options to select a specific industry type, trigger type, time zone, usage of Kafka for enabling Publisher and Functional Dashboard, usage of WMQ for messaging and the user interfaces to be deployed.  These values are also taken as inputs by the above mentioned script.

    Steps to deploy MDM by executing the script /tmp/Configure_MDM_Interactive.sh are detailed below:

    1. Use the below command to obtain details on the docker container corresponding to Installable MDM

    docker container ls

    2. Login to the container using:

    docker exec -it <CONTAINER_NAME> /bin/bash

    3. Go to folder /tmp and execute ./Configure_MDM_Interactive.sh

    This script requests for values for the below mentioned properties and will then execute the target that deploys MDM.

    1. Application Language for MDM
    2. Code Tables Language(s) for MDM
    3. Industry Type
    4. Trigger Type
    5. Multi Time Zone Enablement
    6. Time Zone
    7. Is the database already populated with MDM gold data
    8. Database Host
    9. Database Port
    10. Database Name
    11. Database User
    12. Database Schema
    13. Territory
    14. Matching Engine to be used
    15. Tablespace names corresponding to temporary, small virtual tables, normal virtual tables, large virtual tables, XML & CLOB tables, indexes, PME tables
    16. nd PME indexes
    17. Detail on whether the database is configured with CODEUNITS32
    18. SSL enablement for database, if the database is SSL enabled, SSL version is obtained from the user
    19. Detail on Kafka enablement. If Kafka is selected for enablement, inputs related to Kafka and Zookeeper are obtained
    20. Messaging type – WEM or WMQ When a user opts for WMQ details on WMQ Host, Port, Queue Name, Channel Name, User and Password are obtained as inputs
    21. Option to install Business Admin, Inspector, Enterprise Viewer and Web Reports User Interfaces
    22. Passwords corresponding to WAS Admin User, MDM Admin User and Database.  Please note that the default value for MDM Admin Password is mdmadmin and the MDM Admin User (mdmadmin) is the same as the WAS Admin User.  The default password for the trust stores in WAS Profiles is WebAS.Executing script to that takes in parameter values and deploys MDM
  7. Verify the instance

    The script Configure_MDM_Interactive.sh executes the madconfig target Configure_MasterDataManagement.  Once the script completes execution you could check the responses from the Installation Verification Test at locations /opt/IBM/MDM/IVT/testCases/xml/response and /opt/IBM/MDM/IVT/xml_virtual/response folders.

    Incase you have opted to install user interfaces, you could login to them using mdmadmin/mdmadmin and ensure that they are working as executed.  The below links to the user interfaces after replacing <HOSTNAME> with the name of the machine in which the MDM image is containerized.

    https://<HOSTNAME>:9443/inspector/application/inspector.ihtml

    https://<HOSTNAME>:9443/webreports/common/login.html

    https://<HOSTNAME>:9443/accessweb/servlet/dousrlogin

    https://<HOSTNAME>:9443/CustomerBusinessAdminWeb/faces/login.jsp

    https://<HOSTNAME>:9443/mdmconsent/

  8. Sample Docker commands

    The below commands may be required during the learning process:

    docker images

    docker container ls

    docker exec -it <CONTAINER> /bin/bash

    docker container stop <CONTAINER>

    docker container rm <CONTAINER>

    docker volume prune

    docker network prune

    docker rmi <IMAGE>

  9. docker-compose down

    Use docker-compose down only when you do not want to use the MDM container any more as the docker-compose down command stops and removes the MDM container.

    This command can be used as

    docker-compose -f mdm-installable-remotedb.yml down

Join The Discussion