Overview

Skill Level: Beginner

In this recipe, we are going to have an overview on how to install docker and docker compose and bring up a pre-deployed MDM - database and application along with IBM BPM and IBM Stewardship Center on that docker instance.

Ingredients

A machine on which you can install Docker, Docker Compose and IBM InfoSphere Master Data Management v11.6 Feature Pack 7 along with IBM BPM Process Server, Process Center and IBM Stewardship Center.

Note: MDM Statistics will also be enabled in the instance.

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 images corresponding to MDM Workbench, BPM and IBM Stewardship Center are also available.  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 images

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

    docker load < <FILE>

    For this sample, the below images are required:

    deployed-isc-bpmdb:11.6.0.7

    deployed-mdmisc:11.6.0.7

    deployed-kafka-mdmdb:11.6.0.7

    deployed-kafka-mdm:11.6.0.7

    deployed-kafka:11.6.0.7

     

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

    docker images

  3. Set value for COMPOSE_HTTP_TIMEOUT

    There is a possibility that the HTTP requests timeout during the operation.  An environment variable COMPOSE_HTTP_TIMEOUT determines the timeout period and has a default value of 60.  It is recommended to set a higher value to this environment variabile

    There are two methods using which you could set this value:

    1. Set the value of the variable and invoke docker-compose up in the same command.

    COMPOSE_HTTP_TIMEOUT=200 docker-compose up

    2. Create a file by name .env in the directory from which you will be invoking docker-compose up and add the below line to it:

    COMPOSE_HTTP_TIMEOUT=200

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

    Let us have an overview on the mdm-deployed-isc.yml file which is a yaml file available in Passport Advantage.  This file contains details on five services, namely the MDM Database with tables and gold data in it, a WAS Base Profile that has MDM Applications including the UIs installed in it, IBM MDM Kafka, IBM BPM database, IBM BPM Process Center, IBM Process Server and IBM Stewardship Center.  All these containers are in deployed state and hence customization is possible using the post configuration targets from MDM.

    For each service details including docker image name, port mapping between host and container, container name, host name, environment variables, networks, aliases and volumes are provided. 

    The BPM and MDM database images have the value of flag privileged set to true as it is required to start the DB2 service. 

    The MDM Applications container mentions that it is dependent on the container that has the MDM database.  It uses the hostname DB2HOST to access the MDM database container.

    The MDM ISC image has IBM BPM Process Center, Process Server and IBM Stewardship Center installed in it.

    The Kafka images exposes ports related to kafka and zookeeper services and is used for Statistics.

    The containers become part of the network by name mdmnetwork.  Each container is assigned a static IP address.

    Volumes are used to save the data from the container to the host.  It is also used to share certain key files between containers (Example: volume db2).  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.

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

    The environment variable ACCEPT_LICENSE is present in the mdm_container in the docker compose yaml file.¬† The value of this variable has to be set to true 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.

     

  6. docker-compose up

    Invoke the command docker-compose up from the directory in which the yml file is present.  A file with name docker-compose.yml is expected.  When the file name is different, use the -f option and provide the file name.

    To bring up the containers listed in mdm-deployed-isc.yml we will be using

    docker-compose -f mdm-deployed-isc.yml up

    When this command is invoked, the network, volumes and containers are created and the commands mentioned corresponding to each image is executed.

    Deployed_MDM_ISC_Docker

  7. Default Credentials for Deployed MDM images

    Database

    Database Name: MDMDB

    User: db2inst1

    Password: db2inst1

    Schema: DB2INST1

    SSL File: /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/WASHOSTCell01/nodes/WASHOSTNode01/trust.p12

    SSL Password: WebAS

    SSL Port: 50601

     

    WebSphere Application Server

    WAS Admin User: mdmadmin

    WAS Admin Password: mdmadmin

    MDM Admin User: mdmadmin

    MDM Admin Password: mdmadmin

     

    Business Process Manager (Process Server and Process Center)

    Admin User: bpmadmin

    Admin Password: bpmadmin

     

    IBM Stewardship Center:

    User: dsuser1

    Password: password

  8. Accessing the MDM database and application containers

    Invoke

    docker container ls

    to find the list of containers running.  You should be able to see bpmdb_container, mdmisc_container, db2_container, mdm_container and kafka_container

    Let us find out how to execute the IVT from the mdm_container.

    1. Login to the container using docker utility exec

    docker exec -it mdm_container /bin/bash

    2. Go to directory /opt/IBM/MDM/IVT

    cd /opt/IBM/MDM/IVT

    3. Invoke

    ./verify.sh db2inst1 db2inst1 mdmadmin mdmadmin true /opt/IBM/WebSphere/AppServer/profiles/AppSrv01/config/cells/WASHOSTCell01/nodes/WASHOSTNode01/trust.p12 WebAS

    4. Check the response files at /opt/IBM/MDM/IVT/testCases/xml/response and /opt/IBM/MDM/IVT/testCases/xml_virtual/response

     

    To login to the MDM database container, you can use

    docker exec -it mdmdb2v11 /bin/bash

    It is recommended to switch to user db2inst1 before issuing database related commands.

    Sample login to db2_container:

    root@stems1:~# docker exec -it db2_container /bin/bash
    root@DB2HOST:/# su – db2inst1
    db2inst1@DB2HOST:~$ db2 connect to MDMDB

    Database Connection Information

    Database server = DB2/LINUXX8664 11.1.0
    SQL authorization ID = DB2INST1
    Local database alias = MDMDB

    db2inst1@DB2HOST:~$ db2 “select count(*) from APPSOFTWARE”

    1
    ———–
    1

    1 record(s) selected.

     

    The container ports 9043 and 9443 are mapped to the ports 9043 and 9443 in the host respectively.  Hence, you can access the user interfaces on InfoSphere MDM using the host name and port 9443 with the appropriate URLs.  The WebSphere Admin Console can also be accessed.

  9. URLs to access User Interfaces

    Ports corresponding to the MDM, BPM and ISC are exposed on the host through the yml file, hence it is possible to access the container using the host name. For convenience the URLs to the the User Interfaces are mentioned below.  Please replace <HOST_NAME> with the host name on which you have created the docker containers to access the User Interfaces.

    WebSphere Application Server Admin Console: https://<HOST_NAME>:9043/ibm/console/logon.jsp

    MDM UIs :

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

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

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

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

    https://<HOST_NAME>:9443/mdmconsent/

     

    BPM and IBM Stewardship Center

    BPM Process Center:

    https://<HOST_NAME>:7001/ibm/console/logon.jsp

    https://<HOST_NAME>:7026/ProcessCenter/login.jsp

    https://<HOST_NAME>:7026/ProcessPortal/login.jsp

    https://<HOST_NAME>:7026/ProcessAdmin/login.jsp

    BPM Process Server:

    https://<HOST_NAME>:8001/ibm/console/logon.jsp

    https://<HOST_NAME>:8026/ProcessPortal/login.jsp

    https://<HOST_NAME>:8026/ProcessAdmin/login.jsp

    Stewardship Center

    https://<HOST_NAME>:8026/ProcessPortal/login.jsp

     

    ISC

  10. docker-compose down

    docker-compose down helps you to stop and remove the containers created using the docker-compose.yml file.

    When the name of the file is not docker-compose.yml file, the below syntax can be used:

    docker-compose -f mdm-deployed-isc.yml down

  11. 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>

Join The Discussion