IBM Sterling B2B: Install on Docker for Development: Difference between revisions

From Wiki
 
(37 intermediate revisions by the same user not shown)
Line 1: Line 1:
Follow this documentation to install Sterling B2B on Docker
Follow this documentation to install Sterling B2B on Docker.


This setup is for development and was tested on my MacOs.
This setup is for development/proof-of-concept and was tested on my MacOs. I will not provide how to install docker on your O.S.


= Procedure =
<big>'''Procedure'''</big>:


I will not provide how to install docker on your O.S.:
= Important =


== Install DB2 on Docker ==
By Knowledge center, you expose container ports using "--net=host", but in MacOS this not working. So you need to find the network used by docker containers.
 
= Create my Docker volumes =
 
We need to persist data from container, so i create a directory to do this:


Create my volumes
Create my volumes
  mkdir -p '''<USER_DIRECTORY>'''/DockerVolumes/mydb2
  mkdir -p /opt/DockerVolumes/mydb2
mkdir -p /opt/DockerVolumes/b2bi/resources
 
= Install DB2 on Docker =
 
== Install DB2 on a Docker Container ==


Run this command
Run this command


  docker pull ibmcom/db2
  docker pull ibmcom/db2
 
  docker run -d --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=db2inst1 -v '''<USER_DIRECTORY>'''/DockerVolumes/mydb2:/database ibmcom/db2
  <small>docker run -d --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=db2inst1 -v /opt/DockerVolumes/mydb2:/database ibmcom/db2</small>


you can check install
you can check install


  docker logs -f mydb2
  docker logs -f mydb2
== Create B2B database on DB2==
Create a file '''create_db_b2b62.sql''' with the following data:
-- *****************************************************************
--
--
--
-- *****************************************************************
-- CODESET UTF-8 is mandatory for B2B
!db2set DB2_SKIPDELETED=ON@
!db2set DB2_SKIPINSERTED=ON@
CREATE DATABASE B2BI AUTOMATIC STORAGE YES USING CODESET UTF-8 TERRITORY DEFAULT COLLATE USING SYSTEM PAGESIZE 32768@
CONNECT TO B2BI@
CREATE BUFFERPOOL B2BI_04KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 4K@
CREATE BUFFERPOOL B2BI_08KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 8K@
CREATE BUFFERPOOL B2BI_16KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 16K@
CONNECT RESET@
CONNECT TO B2BI@
CREATE USER TEMPORARY TABLESPACE SCCUSERTMP PAGESIZE 32K BUFFERPOOL IBMDEFAULTBP@
CREATE REGULAR TABLESPACE TS_REG04_B2BI PAGESIZE 4K BUFFERPOOL B2BI_04KBP PREFETCHSIZE AUTOMATIC@
CREATE REGULAR TABLESPACE TS_REG08_B2BI PAGESIZE 8K BUFFERPOOL B2BI_08KBP PREFETCHSIZE AUTOMATIC@
CREATE REGULAR TABLESPACE TS_REG16_B2BI PAGESIZE 16K BUFFERPOOL B2BI_16KBP PREFETCHSIZE AUTOMATIC@
CONNECT RESET@
Save file
Copy file to containter
docker cp create_db_b2b62.sql mydb2:/tmp
Connect to Docker container and run db2 commands
docker exec -it mydb2 bash -c "su - db2inst1"
cd /tmp
db2 -td@ -vf ./create_db_b2b62.sql -z ./create_db_b2b62.log
run exit to logoff from container.
== Copy jdbc driver to host machine ==
cd '''˜'''/DockerVolumes/b2bi/resources
   
   
== Create B2B database ==
docker cp mydb2:/opt/ibm/db2/V11.5/java/db2jcc4.jar .
docker cp mydb2:/opt/ibm/db2/V11.5/java/db2jcc_license_cu.jar .
 
== Only on MacOS: Looking ip address of docker container ==
 
> docker ps
CONTAINER ID        IMAGE                COMMAND                  CREATED            STATUS              PORTS                                                          NAMES
44db51ad3f59        ibmcom/db2            "/var/db2_setup/lib/…"  3 days ago          Up 18 minutes      22/tcp, 55000/tcp, 60006-60007/tcp, 0.0.0.0:50000->50000/tcp  mydb2
 
Run
 
docker inspect 44db51ad3f59
 
in my case
"IPAddress": "172.17.0.3",
 
you must setup <IP_ADDRESS_OF_DB2_SERVER> later.
 
= Install Sterling B2B on Docker =
 
== Create a setup.cfg file ==
Change directory
 
cd '''˜'''/DockerVolumes/b2bi/resources
 
Create setup.cfg file
 
<nowiki>
# Upgrade
UPGRADE=false
 
#License - Specify values as true/false
LICENSE_ACCEPT_ENABLE_SFG=true
LICENSE_ACCEPT_ENABLE_EBICS=true
LICENSE_ACCEPT_ENABLE_FINANCIAL_SERVICES=true
 
# Security configurations
SYSTEM_PASSPHRASE=passw0rd
#FIPS compliance mode. Specify values as true/false
ENABLE_FIPS_MODE=
# NIST 800-131a compliance mode. Enter one of these values - strict/transition/off
NIST_COMPLIANCE_MODE=
 
#Initial or base port
INITIAL_PORT=5800
 
# DB attributes
DB_VENDOR=db2
DB_USER=db2inst1
DB_PASSWORD=db2inst1
DB_HOST=<IP_ADDRESS_OF_DB2_SERVER>
DB_PORT=50000
DB_DATA=B2B62
DB_DRIVERS=db2jcc4.jar
DB_CREATE_SCHEMA=true
ORACLE_USE_SERVICE_NAME=false
 
#Email
SMTP_HOST=2525
 
#Miscellaneous
SOFT_STOP_TIMEOUT=
 
#WMQ
#JMS properties are optional if JMS_VENDOR is empty
#To use IBMMQ for communication between ASI & AC, change property to JMS_VENDOR=IBMMQ
# and provide other connection details
JMS_VENDOR=
JMS_CONNECTION_FACTORY=
JMS_CONNECTION_FACTORY_INSTANTIATOR=
JMS_QUEUE_NAME=
JMS_USERNAME=
JMS_PASSWORD=
JMS_CONNECTION_NAME_LIST=
JMS_CHANNEL=
JMS_ENABLE_SSL=false
JMS_KEYSTORE_PATH=
JMS_KEYSTORE_PASSWORD=
JMS_TRUSTSTORE_PATH=
JMS_TRUSTSTORE_PASSWORD=
JMS_CIPHERSUITE=
JMS_PROTOCOL=TLSv1.2
 
#Liberty Profile SSL Config
LIBERTY_KEYSTORE_PASSWORD=
LIBERTY_KEYSTORE_LOCATION=
LIBERTY_PROTOCOL=TLSv1.2
 
#jvm options. Example: LIBERTY_JVM_OPTIONS=-Xms256m;-Xmx512m
LIBERTY_JVM_OPTIONS=
 
#JCE update parameters
#Set value true to update JCE
UPDATE_JCE_POLICY_FILE=false
#Name of JCE file. This file should be present in mapped folder
JCE_POLICY_FILE=
 
#End of Configuration</nowiki>
 
=== Encrypting passwords ===
 
In this example i not encrypted password.
 
You can encrypt the following variables: SYSTEM_PASSPHRASE, DB_PASSWORD, JMS_PASSWORD, JMS_KEYSTORE_PASSWORD, JMS_TRUSTSTORE_PASSWORD, LIBERTY_KEYSTORE_PASSWORD
 
To do run the following command. Example:
 
echo '''passw0rd''' | openssl enc -aes-256-ecb -e -a -K 4254514F6C6C2B594650496373422B764D66584E54673D3D
 
After change
 
SYSTEM_PASSPHRASE=passw0rd
 
to the following
 
SYSTEM_PASSPHRASE=ENCRYPTED:SV/xIqkXTmUZ9byaBlKlIw==
 
== Load docker images locally ==
 
You must download container images from Password Advantage site. After you must load Sterling B2B container image to local registry using the following command:
 
docker load -i STR_B2BI_6.0.2_CONTAINER_MP_ML.tar
 
you can check with the command:
 
docker images
 
take note of image-id
 
== Run setup ==
Let's run b2bi setup using command:
 
docker run -e LICENSE="accept" -e TZ="America/Sao_Paulo" -d --name=b2bi -p 5800:5800 -p 9443:9443 -v /opt/DockerVolumes/b2bi/resources:/ibm/resources <image-id> b2bi_setup deploy_db
 
You can check the status using command:
 
> docker logs -f <container-id>
 
In my case:
...
Total B2biSetup time: 01:04:14
Total B2biInDockerTotal time: 01:05:47


docker -it mydb2 bash -c "su - db2inst1"
== Run node1 ==


== Install Sterling B2B Docker Version ==
docker run -e LICENSE="accept" -e TZ="America/Sao_Paulo" -d --name=b2bii -p 5800:5800 -p 9443:9443 -v /opt/DockerVolumes/b2bi/resources:/ibm/resources <image-id> b2bi_run all 1


= Ver também =
= Ver também =

Latest revision as of 15:04, 8 September 2020

Follow this documentation to install Sterling B2B on Docker.

This setup is for development/proof-of-concept and was tested on my MacOs. I will not provide how to install docker on your O.S.

Procedure:

Important

By Knowledge center, you expose container ports using "--net=host", but in MacOS this not working. So you need to find the network used by docker containers.

Create my Docker volumes

We need to persist data from container, so i create a directory to do this:

Create my volumes

mkdir -p /opt/DockerVolumes/mydb2
mkdir -p /opt/DockerVolumes/b2bi/resources

Install DB2 on Docker

Install DB2 on a Docker Container

Run this command

docker pull ibmcom/db2

docker run -d --name mydb2 --privileged=true -p 50000:50000 -e LICENSE=accept -e DB2INST1_PASSWORD=db2inst1 -v /opt/DockerVolumes/mydb2:/database ibmcom/db2

you can check install

docker logs -f mydb2

Create B2B database on DB2

Create a file create_db_b2b62.sql with the following data:

-- *****************************************************************
--
--
--
-- *****************************************************************
-- CODESET UTF-8 is mandatory for B2B
!db2set DB2_SKIPDELETED=ON@
!db2set DB2_SKIPINSERTED=ON@

CREATE DATABASE B2BI AUTOMATIC STORAGE YES USING CODESET UTF-8 TERRITORY DEFAULT COLLATE USING SYSTEM PAGESIZE 32768@

CONNECT TO B2BI@
CREATE BUFFERPOOL B2BI_04KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 4K@
CREATE BUFFERPOOL B2BI_08KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 8K@
CREATE BUFFERPOOL B2BI_16KBP IMMEDIATE SIZE AUTOMATIC PAGESIZE 16K@
CONNECT RESET@

CONNECT TO B2BI@
CREATE USER TEMPORARY TABLESPACE SCCUSERTMP PAGESIZE 32K BUFFERPOOL IBMDEFAULTBP@
CREATE REGULAR TABLESPACE TS_REG04_B2BI PAGESIZE 4K BUFFERPOOL B2BI_04KBP PREFETCHSIZE AUTOMATIC@
CREATE REGULAR TABLESPACE TS_REG08_B2BI PAGESIZE 8K BUFFERPOOL B2BI_08KBP PREFETCHSIZE AUTOMATIC@
CREATE REGULAR TABLESPACE TS_REG16_B2BI PAGESIZE 16K BUFFERPOOL B2BI_16KBP PREFETCHSIZE AUTOMATIC@
CONNECT RESET@

Save file

Copy file to containter

docker cp create_db_b2b62.sql mydb2:/tmp

Connect to Docker container and run db2 commands

docker exec -it mydb2 bash -c "su - db2inst1"

cd /tmp

db2 -td@ -vf ./create_db_b2b62.sql -z ./create_db_b2b62.log

run exit to logoff from container.

Copy jdbc driver to host machine

cd ˜/DockerVolumes/b2bi/resources

docker cp mydb2:/opt/ibm/db2/V11.5/java/db2jcc4.jar .
docker cp mydb2:/opt/ibm/db2/V11.5/java/db2jcc_license_cu.jar .

Only on MacOS: Looking ip address of docker container

> docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                                          NAMES
44db51ad3f59        ibmcom/db2            "/var/db2_setup/lib/…"   3 days ago          Up 18 minutes       22/tcp, 55000/tcp, 60006-60007/tcp, 0.0.0.0:50000->50000/tcp   mydb2

Run

docker inspect 44db51ad3f59

in my case

"IPAddress": "172.17.0.3",

you must setup <IP_ADDRESS_OF_DB2_SERVER> later.

Install Sterling B2B on Docker

Create a setup.cfg file

Change directory

cd ˜/DockerVolumes/b2bi/resources

Create setup.cfg file

# Upgrade
UPGRADE=false

#License - Specify values as true/false
LICENSE_ACCEPT_ENABLE_SFG=true
LICENSE_ACCEPT_ENABLE_EBICS=true
LICENSE_ACCEPT_ENABLE_FINANCIAL_SERVICES=true

# Security configurations
SYSTEM_PASSPHRASE=passw0rd
#FIPS compliance mode. Specify values as true/false
ENABLE_FIPS_MODE=
# NIST 800-131a compliance mode. Enter one of these values - strict/transition/off
NIST_COMPLIANCE_MODE=

#Initial or base port
INITIAL_PORT=5800

# DB attributes
DB_VENDOR=db2
DB_USER=db2inst1
DB_PASSWORD=db2inst1
DB_HOST=<IP_ADDRESS_OF_DB2_SERVER>
DB_PORT=50000
DB_DATA=B2B62
DB_DRIVERS=db2jcc4.jar
DB_CREATE_SCHEMA=true
ORACLE_USE_SERVICE_NAME=false

#Email
[email protected]
SMTP_HOST=2525

#Miscellaneous
SOFT_STOP_TIMEOUT=

#WMQ
#JMS properties are optional if JMS_VENDOR is empty
#To use IBMMQ for communication between ASI & AC, change property to JMS_VENDOR=IBMMQ
# and provide other connection details
JMS_VENDOR=
JMS_CONNECTION_FACTORY=
JMS_CONNECTION_FACTORY_INSTANTIATOR=
JMS_QUEUE_NAME=
JMS_USERNAME=
JMS_PASSWORD=
JMS_CONNECTION_NAME_LIST=
JMS_CHANNEL=
JMS_ENABLE_SSL=false
JMS_KEYSTORE_PATH=
JMS_KEYSTORE_PASSWORD=
JMS_TRUSTSTORE_PATH=
JMS_TRUSTSTORE_PASSWORD=
JMS_CIPHERSUITE=
JMS_PROTOCOL=TLSv1.2

#Liberty Profile SSL Config
LIBERTY_KEYSTORE_PASSWORD=
LIBERTY_KEYSTORE_LOCATION=
LIBERTY_PROTOCOL=TLSv1.2

#jvm options. Example: LIBERTY_JVM_OPTIONS=-Xms256m;-Xmx512m
LIBERTY_JVM_OPTIONS=

#JCE update parameters
#Set value true to update JCE
UPDATE_JCE_POLICY_FILE=false
#Name of JCE file. This file should be present in mapped folder
JCE_POLICY_FILE=

#End of Configuration

Encrypting passwords

In this example i not encrypted password.

You can encrypt the following variables: SYSTEM_PASSPHRASE, DB_PASSWORD, JMS_PASSWORD, JMS_KEYSTORE_PASSWORD, JMS_TRUSTSTORE_PASSWORD, LIBERTY_KEYSTORE_PASSWORD

To do run the following command. Example:

echo passw0rd | openssl enc -aes-256-ecb -e -a -K 4254514F6C6C2B594650496373422B764D66584E54673D3D

After change

SYSTEM_PASSPHRASE=passw0rd

to the following

SYSTEM_PASSPHRASE=ENCRYPTED:SV/xIqkXTmUZ9byaBlKlIw==

Load docker images locally

You must download container images from Password Advantage site. After you must load Sterling B2B container image to local registry using the following command:

docker load -i STR_B2BI_6.0.2_CONTAINER_MP_ML.tar

you can check with the command:

docker images

take note of image-id

Run setup

Let's run b2bi setup using command:

docker run -e LICENSE="accept" -e TZ="America/Sao_Paulo" -d --name=b2bi -p 5800:5800 -p 9443:9443 -v /opt/DockerVolumes/b2bi/resources:/ibm/resources <image-id> b2bi_setup deploy_db

You can check the status using command:

> docker logs -f <container-id>

In my case:

...
Total B2biSetup time: 01:04:14
Total B2biInDockerTotal time: 01:05:47

Run node1

docker run -e LICENSE="accept" -e TZ="America/Sao_Paulo" -d --name=b2bii -p 5800:5800 -p 9443:9443 -v /opt/DockerVolumes/b2bi/resources:/ibm/resources <image-id> b2bi_run all 1

Ver também