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.
Issue the below commands to install Docker on RHEL
sudo yum install -y yum-utils \
sudo yum-config-manager \
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
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:
For this sample, the MDM image required is installable-mdm:126.96.36.199
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.
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
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.
The MDM installable image contains a WebSphere Application Server Base v188.8.131.52.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.
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.
- Application Language for MDM
- Code Tables Language(s) for MDM
- Industry Type
- Trigger Type
- Multi Time Zone Enablement
- Time Zone
- Is the database already populated with MDM gold data
- Database Host
- Database Port
- Database Name
- Database User
- Database Schema
- Matching Engine to be used
- Tablespace names corresponding to temporary, small virtual tables, normal virtual tables, large virtual tables, XML & CLOB tables, indexes, PME tables
- nd PME indexes
- Detail on whether the database is configured with CODEUNITS32
- SSL enablement for database, if the database is SSL enabled, SSL version is obtained from the user
- Detail on Kafka enablement. If Kafka is selected for enablement, inputs related to Kafka and Zookeeper are obtained
- 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
- Option to install Business Admin, Inspector, Enterprise Viewer and Web Reports User Interfaces
- 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.
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.
Sample Docker commands
The below commands may be required during the learning process:
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>
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