Skip to content
Amit Gupta edited this page Mar 6, 2021 · 14 revisions

Assumptions

  1. CentOS 7/8 VM is installed with all updates
  2. OpneText Documentum is accessible and available to download
  3. Little knowledge on Docker and Documentum has been gained
  4. Private/Local Docker Registry to upload content server docker image
  5. (Optional) Multipass has been setup and configured to use for Ubuntu lovers. Refer SetupMultiPass.ps1 on Windows 10 Pro PCs.

Please follow the guide below. If Docker and Docker Compose are already setup/available, please ignore the 'Docker Setup on CentOS 7/8' section.

Docker Setup on CentOS 7/8

Install Docker using Admin user

sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable docker
sudo systemctl start docker
sudo usermod -aG docker $LOGNAME

Install Docker Bash Completion

sudo yum install -y bash-completion bash-completion-extras
sudo curl -L https://raw.githubusercontent.com/docker/compose/1.25.5/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose

Install Docker Compose

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

Setup Isolated Network

This network will be used by all the components for inter-communications using hostname instead of IP.

docker network create dctm-dev

Setup DB (Postgres)

docker run --network dctm-dev --name postgres --hostname postgres -e POSTGRES_PASSWORD=password -d -p 5432:5432 postgres:9.6
sleep 5s
docker exec postgres su -c "mkdir /var/lib/postgresql/data/db_documentum_dat.dat" postgres

Create Content Server Docker Container

Upload Content Server Docker Image to Local Registry

tar -xvf contentserver_docker_ubuntu.tar
docker load -i Contentserver_Ubuntu.tar
docker image ls

If you have docker hub account, you are allowed to create 1 private docker repository. You can use this as content server private docker repository. Follow the general gudelines to push above image to your own private docker hub repository, but beware of the licensing t&c while using it this way.

Update the YAML file and load Environment variables

Use the 'CS-Docker-Compose_Stateless.yml' file, and place right image:tag information in the line below.

CS-Docker-Compose_Stateless.yml

E.g.,
image: amit17051980/dctm-cs:16.4.0

Environment File

E.g.,
export APP_SERVER_PASSWORD=password
export INSTALL_OWNER_PASSWORD=password
export ROOT_PASSWORD=password
export DOCBASE_PASSWORD=password
export DATABASE_PASSWORD=password
export GLOBAL_REGISTRY_PASSWORD=password
export AEK_PASSPHRASE=password
export LOCKBOX_PASSPHRASE=password 

Compose the docker container for Content Server

source documentum-environment.profile
docker login
docker pull amit17051980/dctm-cs:16.4.0
docker-compose -f CS-Docker-Compose_Stateless.yml up -d

Wait for 30 minutes and review the log

Based on computer resources, the above compose operation should be completed within 30 minutes. Check the log as below:

docker logs -f documentum-cs

Once the below lines are shown, try to login to documentum-cs container and review iapi/idql.

/opt/dctm_docker/scripts/start_all_services.sh: line 64: kill: (1171) - No such process
UID        PID  PPID  C STIME TTY          TIME CMD
docker exec -it documentum-cs su - dmadmin -c 'idql documentum -udmadmin -pfakepassword'

Note: If you wish, sections below can be done while Content Server is being setup.

  1. Create xCP App Container
  2. Create xDA Container
  3. Create Documentum Administrator Container

Install Process Engine (Post Content Server Health Check)

Get the Process Engine tar file (process_engine_linux.tar) form Support site and place it to current working directory. Initialise the silent installation property file (pe.properties).

E.g.,
INSTALLER_UI=SILENT
APPSERVER.SERVER_HTTP_PORT=9080
PE.INSTALL_TARGET=/opt/dctm
PE.FQDN=documentum-cs
PE.DOCBASES_ADMIN_USER_NAME=dmadmin
PE.DOCBASES_ADMIN_USER_PASSWORD=password
PROCESS_ENGINE.GLOBAL_REGISTRY_ADMIN_USER_NAME=dm_bof_registry
PROCESS_ENGINE.SECURE.GLOBAL_REGISTRY_ADMIN_PASSWORD=password

Transfer files to Documentum CS container and install the PE:

Make sure to download and put Process Engine binary in media-files/process_engine_linux.tar

docker exec documentum-cs su - dmadmin -c 'mkdir -p /opt/dctm_docker/PE'
docker cp media-files/process_engine_linux.tar documentum-cs:/opt/dctm_docker/PE/
docker cp media-files/pe.properties documentum-cs:/opt/dctm_docker/PE/
docker exec documentum-cs su - dmadmin -c 'cd /opt/dctm_docker/PE/; tar -xvf process_engine_linux.tar; chmod 775 peSetup.bin'
docker exec documentum-cs su - dmadmin -c 'rm -rf /opt/dctm_docker/PE/process_engine_linux.tar'
docker exec documentum-cs su - dmadmin -c 'cd /opt/dctm/wildfly9.0.1/server/; ./stopMethodServer.sh'
sleep 5s
docker exec documentum-cs su - dmadmin -c 'cd /opt/dctm_docker/PE/; ./peSetup.bin -f pe.properties'
sleep 10s
docker exec documentum-cs su - dmadmin -c 'cd /opt/dctm_docker/scripts/; sed -i s/bpm.ear/why-bpm.ear/g start_all_services.sh'
docker restart documentum-cs

Create xCP App Container

docker run --network dctm-dev -d --log-opt max-size=2m --log-opt max-file=2 --name documentum-xcp --hostname documentum-xcp -p 8000:8080 -p 443:8443 amit17051980/dctm-tomcat:latest
sleep 3s
docker exec documentum-xcp su -c "cp -r /usr/local/tomcat/webapps.dist/manager /usr/local/tomcat/webapps/"
docker cp media-files/context.xml documentum-xcp:/usr/local/tomcat/webapps/manager/META-INF/
docker cp media-files/catalina.properties documentum-xcp:/usr/local/tomcat/conf/
docker cp media-files/tomcat-users.xml documentum-xcp:/usr/local/tomcat/conf/
docker cp media-files/custom-conf documentum-xcp:/usr/local/tomcat/
docker restart documentum-xcp

Note: Please review media-files/context.xml to allow right IP prefixes. This should allow xDA node to deploy WAR file on tomcat server using manager command line. Also review files on media-files/custom-conf folder.

E.g.,
<Context antiResourceLocking="false" privileged="true" >
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="10\.\d+\.\d+\.\d+|192\.\d+\.\d+\.\d+" />
  <Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>

Create xDA Container

Place xda and xda-tools inside xda-docker-build folder to create docker container for xda, and upload to your private registry. Please refer Dockerfile.

E.g.,
#cd xda-docker-build
#docker build -t xda .

docker pull amit17051980/dctm-cs:xda-16.4-Patch
docker run --network dctm-dev --name xda --hostname xda -d --log-opt max-size=2m --log-opt max-file=2 -p 7000:7000 amit17051980/dctm-cs:xda-16.4-Patch
docker exec -it xda bash

cd /opt/xda-tools/config/
echo "" >>xda.properties 
echo "xda-host = localhost" >>xda.properties 
echo "xda-port = 7000" >>xda.properties 
echo "xda-schema = http" >>xda.properties 

sleep 60s
cd ../bin/
./configure-xda.sh

Create Documentum Administrator Container

In this section we assume that you have media-files/da.war with all the relevant files in the WEB-INF/classes.

docker run --network dctm-dev -d --log-opt max-size=2m --log-opt max-file=2 --name documentum-da --hostname documentum-da -p 8080:8080 amit17051980/tomcat:7.0
docker cp media-files/da.war documentum-da:/usr/local/tomcat/webapps/

Appendix - Enable SSL on Java Method Server

Please follow the link https://github.com/amit17051980/DCTM-xCP-16.4.0/blob/master/KB10912939.pdf

Appendix - Enable SSL on xCP App Server

Please follow the link https://github.com/amit17051980/xCP-SAML2-OKTA/wiki#1-enable-ssl-on-xcp-app-server-tomcat-85

Appendix - JMS BPM Issue

Please review the dm_jms_config object to check the BPM URL post process engine installation.

Appendix - xCP Designer (Layout Issue)

Please install http://www.microsoft.com/en-in/download/details.aspx?id=14632 patch on Windows 10 Pro to resolve this issue.

Appendix - Deployment Issue

Please update xDA Environment for below things in case of the DM_SESSION_RPC issue.

  1. Account Credentials
  2. AppHost Endpoint Credentials

Appendix - OpenText bpm.ear Not Auto Deploying Post Method Server Restart

It was noticed that the docker entry-point scripts are excluding bpm.ear from deploying on startup of docker services. To tackle this I have used below command during Process Engine installation. This leaves the trace in-place but prevent bpm.ear from exclusion list. Possibly there is a reason, but I've not seen any impact on my xCP Applications etc.

docker exec documentum-cs su - dmadmin -c 'cd /opt/dctm_docker/scripts/; sed -i s/bpm.ear/why-bpm.ear/g start_all_services.sh'

Appendix - ACS is failing to open files in DA/xCP

Update the hosts file to add <DOCKER_HOST_IP> documentum-cs OR Update dm_acs_config object and set DOCKER_HOST_IP or DOCKER_HOST_DNS.

E.g., 

retrieve,c,dm_acs_config
set,c,l,acs_base_url
http://10.0.0.20:9080/ACS/servlet/ACS
save,c,l

Note: In any case, DOCKER_HOST_IP or DOCKER_HOST_DNS should be reachable from PC where Browser is running.