-
Notifications
You must be signed in to change notification settings - Fork 1
Home
- CentOS 7/8 VM is installed with all updates
- OpneText Documentum is accessible and available to download
- Little knowledge on Docker and Documentum has been gained
- Private/Local Docker Registry to upload content server docker image
- (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.
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
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
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
This network will be used by all the components for inter-communications using hostname instead of IP.
docker network create dctm-dev
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
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.
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
source documentum-environment.profile
docker login
docker pull amit17051980/dctm-cs:16.4.0
docker-compose -f CS-Docker-Compose_Stateless.yml up -d
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.
- Create xCP App Container
- Create xDA Container
- Create Documentum Administrator Container
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
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>
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
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/
Please follow the link https://github.com/amit17051980/DCTM-xCP-16.4.0/blob/master/KB10912939.pdf
Please follow the link https://github.com/amit17051980/xCP-SAML2-OKTA/wiki#1-enable-ssl-on-xcp-app-server-tomcat-85
Please review the dm_jms_config object to check the BPM URL post process engine installation.
Please install http://www.microsoft.com/en-in/download/details.aspx?id=14632 patch on Windows 10 Pro to resolve this issue.
Please update xDA Environment for below things in case of the DM_SESSION_RPC issue.
- Account Credentials
- AppHost Endpoint Credentials
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'
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.