In April, we announced that PeopleSoft would begin shipping Update Images on Containers. We’re excited to announce the next Finance Image release is planning to include the option to deploy on containers.
Shipping PeopleSoft Update Images on containers is more than a new delivery format. It represents a simpler, faster way to deploy a complete PeopleSoft Image using technologies that have become the standard across modern IT organizations.
If you’ve deployed Update Images on VirtualBox in the past, the process will be similar, but you no longer need to download and run the entire deployment process. Instead you work with pre-built container images that are ready to load into Podman. Configuration is handled through a small number of text files, and once they’re updated for your environment, a single podman-compose command launches the entire stack.
The container-based deployment includes everything needed for a complete PeopleSoft Update Manager environment. The Oracle Database, PeopleSoft middle tier, and Search and Insights components each run in their own container. Unlike the VirtualBox DPK, container-based Update Images include the full search stack so you can see PeopleSoft Insights in action. The deployment process automatically plugs in the delivered database, builds the PeopleSoft domains, configures Search and Insights, and starts the services.
Another advantage of the container approach is that it makes deployments easier to repeat. Unlike the VirtualBox DPK, the container-based Update Images use files to store your configuration. Once you’ve tailored the configuration files for your environment, you can reuse them whenever you deploy the next image.
Getting Started with Update Image Containers
Getting started with Update Images on Containers is straightforward. The process involves these primary steps:
- Installing Podman
- Downloading and prepping the .zip file
- Updating config files
- Deploying the containers
Install Podman
The first step is to install Podman, of Podman Desktop if you are running on Windows. Refer to the Container Installation guide for more information on this process.
Download and Prepare .zip Files
After installing Podman, download the Finance Image 57 release from My Oracle Support. You can find the patch number on the PeopleSoft Update Manager Homepage (KA615).
Once downloaded, unzip only the first file and use the included Instructions.txt file to assemble and extract a single .zip file. If you have worked with the NativeOS or VirtualBox DPKs, the .zip files for containers are different. The individual .zip files (except the first zip – 1ofX.zip) are combined into a single file first, then extracted.
Copy the zip files 2-6 to a new directory and then combine them into a single .zip file.
For Windows Powershell, we can use the copy command:
cmd /c copy /b FSCM-920-UPD-057-CNT_*of*.zip ep92u057.zip
On Linux, we can use the cat command:
cat $(ls FSCM-920-UPD-057-CNT_*of*.zip | sort -V) > ep92u057.zip
Now you can unzip the new ep92u057.zip file to a directory named ep92u057. Then, open the ep92u057 directory in a terminal window.
If you run into an error extracting the .zip file, make sure you did NOT include the 1ofX.zip file when combining them into a single file. Once you have extract the .zip file, you can view the setup documentation for Podman in the file located under “docs/pum/README.md”. Now we begin working with Podman.
Load the delivered container images into Podman.
Windows Powershell:
podman load -i .\image\latest-19-ps.tgz
podman load -i .\image\ep92u057.tgz
podman load -i .\image\862.2.11.tgz
Linux:
podman load -i ./image/latest-19-ps.tgz
podman load -i ./image/ep92u057.tgz
podman load -i ./image/862.2.11.tgz
Verify the containers images are available with Podman.
podman image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
localhost/oracle/peopletools/osk 862.2.11 9e4d0f045966 9 days ago 3.02 GB localhost/oracle/peoplesoft/fscm/pum/midtier ep92u057 1dacf95f6af1 9 days ago 17.5 GB localhost/oracle/database/enterprise_ru latest-19-ps 7025e1b00ab0 9 days ago 16.7 GB
The configuration files reference these image names and the associated tags. We will use the OSK image name and tag during the OSK setup.
Container Configuration
Once Podman has loaded the container images, we can update the configuration files with values for your environment. There are 4 files that need some basic information before you can deploy the images.
- The
compose.yamlfile needs to database password. - The
in\pum\install.rspfile is where you configure your PeopleSoft passwords and database configuration. - The
in\pum\psft_customizations.yamlfile needs the fully qualified domain name for the machine were your containers are running. - The
in\osk\install-osk.rspfile is where you configure Opensearch, Dashboards, and Logstash.
Each file has many options for configuration, but we will walk through the basic configuration needed in each file to get an Update Image running.
The compose.yaml File
The compose.yaml file organizes the 3 different container images (database, midtier, search), defines server-level properties, and establishes a Podman network for the components to communicate to each other. It also enables us to control all 3 containers with a single command.
Most of this file can be left as default, but at a minimum you need to fill int he ORACLE_PWD field under the database container.
ORACLE_PWD=<oracle admin password>
If you are using Podman Desktop on Windows, also uncomment this line in the midtier section.
container=windows
The psft_customizations.yaml File
This file needs one change, and that is the name of the server or laptop you are running the container. This will be used to configure the web server to to the URL you will use to connect to the PeopleSoft Image. To find you machines’s fully qualified domain name, run this command.
Windows Powershell:
echo $env:COMPUTERNAME
Linux:
hostname -f
If your hostname isn’t a fully qualified domain name (like server.domain.com), you can use midtier.oraclevcn.com. If you use midtier.oraclevcn.com, you will need to add an entry to your local hosts file.
Windows Powershell (as Administrator):
echo '127.0.0.1 midtier.oraclevcn.com' | Add-Content C:\Windows\System32\drivers\etc\hosts
Linux
echo '127.0.0.1 midtier.oraclevcn.com' | sudo tee -a /etc/hosts
The install.rsp File
The file in/pum/install.rsp is where we configure the PUM and passwords for our PeopleSoft container.
The first section configures the container for the Update Manager and the base PeopleSoft environment. Fill in the app_type for your image application.
install_type=PUM
app_type=fscm
env_type=pummidtier
psft_base_dir=/opt/oracle
user_home_dir=/home
For the database settings, use the default setting for connecting to the database. The db_host setting must match the container name in our compose.yaml file – the default is database.
db_type=DEMO
db_listener_port=1521
db_name=EP92U057
db_service_name=EP92U057
db_host=database
For the usernames and passwords, follow the passwords requirements listed in the PeopleTools 8.62 Deployment Packages Installation guide.
The install-osk.rsp File
The last config file we update is the OSK response file. This file controls the installation and configuration of Opensearch, Dashboards, and Logstash. These commands will grab the latest template for the OSK DPK and encrypt the passwords for your response file.
Append the install response file
First you need to append the install file into install-osk.rsp by running a single command in the osk container image. You can reference the list of container images from our earlier podman image ls command. Use the full container name and the tag.
WIndows Powershell:
podman run --rm -ti localhost/oracle/peopletools/osk:862.2.11 bash -c "cat /in/dpk/setup/silentinstall.config" | add-content in/osk/install-osk.rsp
Linux:
podman run --rm -ti localhost/oracle/peopletools/osk:862.2.11 bash -c "cat /in/dpk/setup/silentinstall.config" | dos2unix >> in/osk/install-osk.rsp
Generate encrypted passwords for OSK
The OSK installer has a built-in utility to encrypt passwords for the response file. The access it, we will run a single command that passes in our plain text passwords. The command will return encrypted passwords and we will store them in a new file named encrypted_pass.txt.
Windows Powershell:
podman run --rm -ti localhost/oracle/peopletools/osk:862.2.11 bash -c `
'JAVA_HOME=$(find /opt/oracle/osk/pt/ -name "os_jdk*" -type d); \
export JAVA_HOME; \
echo "JAVA_HOME-${JAVA_HOME}"; \
/in/dpk/setup/python/python \
/in/dpk/setup/OSK_Encrypt.py \
--os <OS_ADMIN_PASSWORD> <OS_PROXY_PASSWORD> \
--ls <OS_ADMIN_PASSWORD> <LS_IB_USER> <LS_IB_PASSWORD> <LS_PRCS_USER> <LS_PRCS_PASSWORD>' | out-file encrypted_pass.txt
Linux
podman run --rm -ti <osk image_name> bash -c \
'JAVA_HOME=$(find /opt/oracle/osk/pt/ -name "os_jdk*" -type d); \
export JAVA_HOME; \
echo "JAVA_HOME-${JAVA_HOME}"; \
/in/dpk/setup/python/python \
/in/dpk/setup/OSK_Encrypt.py \
--os <OS_ADMIN_PASSWORD> <OS_PROXY_PASSWORD> \
--ls <OS_ADMIN_PASSWORD> <LS_IB_USER> <LS_IB_PASSWORD> <LS_PRCS_USER> <LS_PRCS_PASSWORD>' 2>&1 | tee encrypted_pass.txt
Take the encrypted passwords from the encrypted_pass.txt file and add them to the matching entry in the install-osk.rsp file.
Configure the OSK hostname
After adding the encrypted values, we will set the hostname for our search container in the response file. This name will match the hostname value in the compose.yaml file, which defaults to osk.oraclevcn.com. Set this hostname for these entries:
- network.host
- LS_host
- OS_host
- opensearch-dashboards.host
- OS.host[http(s)://hostname] <– Make sure to include
http://before the hostname - OS_host_PRCS
Configure the IB URLs
Next we add the Integration Broker URL into our response file. These are URLs that are used by Logstash to grab configuration data out of PeopleSoft instance. The URL points to the PeopleSoft REST Listening Connector and uses the default node (PSFT_EP for Finance, PSFT_HR for HR).
- IB_REST_URL= http://midtier.oraclevcn.com:8000/PSIGW/RESTListeningConnector/PSFT_EP/PT_CREATEJSON_REST.v1/json=
- IB_REST_PRCS_URL= http://midtier.oraclevcn.com:8000/PSIGW/RESTListeningConnector/PSFT_EP/PT_CREATEJSON_REST.v1/json=
After the IB callback configuration, we will set the rest of our configuration values marked Mandatory in the install-osk.rsp file..
Clean up the response file
Before closing this file, we will remove the instructions at the top. The instructions in this file are a guide to filling out the response file and are not needed anymore. Make sure to remove them so the installer doesn’t try to process them.
Deploy the Containers
With the configuration files populated, we can deploy our PeopleSoft Update Image.
For Linux:
podman-compose up -d
For Powershell:
podman compose up -d
The up command tells Podman to start building new containers and start each instance. It will read the compose.yaml file so the containers instances are built in the proper order and perform a healthcheck on each instance before moving onto the next. The -d flag tells Podman to run the containers in the background after it has finished building them.
When the build is complete, you will see this output:
Windows Powershell:
podman compose up -d
[+] up 4/4
✔ Network pum_default Created 0.0s
✔ Container database Healthy 435.0s
✔ Container midtier Healthy 788.2s
✔ Container osk Started 788.3s
Linux:
podman-compuse up -d
database
midtier
osk
While the the container instances are being built, the command line will not be available. To view the logs during the build, open a new terminal window and open the ep92u057 directory. Use the command podman-compose logs -f to follow along with the build process. You can follow all the logs or watch each container separately. For example, to watch the midtier logs use this command:
podman logs -f midtier
Finance Image 57 is planned to be the first PUM image to use this new deployment model, and future Update Images will continue to build on it. As we move forward, customers should begin planning for container-based deployments, as the VirtualBox DPK delivery model is planned to be retired in a future release. See Tech Update XXX for more information on the Update Image Platform change.
Technical Appendix
compose.yaml
In this sample file, the only changes were to the ORACLE_PWD and container=windows lines:
services:
database:
environment:
- ORACLE_PWD=<password>
midtier:
environment:
- container=windows
If your system has SELinux set to enforcing, the volume mounts into the containers may not work properly. You can change the SELinux tag on the volumes from ro to Z to resolve this. For example:
volumes:
- ./in/pum:/in/pum:Z
in/pum/install.rsp
# ===== PUM =====
# Sample PUM DPK Response File
# Remove install.rsp file once the container is up and runing
# Environment and Installation Information
# Update app_type=<hcm/fscm/crm/elm/ps/cs>
install_type=PUM
app_type=fscm
env_type=pummidtier
psft_base_dir=/opt/oracle
user_home_dir=/home
# Database Settings
db_type=DEMO
db_listener_port=1521
db_name=EP92U057
db_service_name=EP92U057
db_host=database
# Database/User Credentials
access_pwd=<password>
connect_id=people
connect_pwd=<password>
opr_id=VP1
opr_pwd=<password>
admin_pwd=<oracle admin password - must match compose.yaml password>
# Web/WebLogic/WebProfile Credentials
weblogic_admin_pwd=<password>
webprofile_user_id=PTWEBSERVER
webprofile_user_pwd=<password>
# Gateway Credentials
gw_user_id=administrator
gw_user_pwd=<password>
gw_keystore_pwd=<password>
in/pum/psft_customization.yaml
Sample psft_customization.yaml file – requires hosts file entry for midtier.oraclevcn.com to access container URL on local machine.
---
setup_share: false
setup_sysctl: false
pia_host_name: "midtier.oraclevcn.com"
in/osk/install-osk.rsp
Sample install-osk.rsp file – comments removed – refer to the inline comments included in the file and the Installation Guide for more information.
Install opensearch?[Y/N]= Y
cluster.name= PUM
network.host= osk.oraclevcn.com
http.port=
path.data=
path.logs=
discovery.hosts=
OS_HEAP_SIZE= 2
admin.user=
admin.password= <encrypted password>
people.user=
people.password= <encrypted password>
###############################################
OS_keystore_path=
OS_keystore_pwd=
OS_truststore_path=
OS_truststore_pwd=
###############################################
Install Logstash?[Y/N]= Y
LS_port= 9800
LS_host = osk.oraclevcn.com
OS_user = osadmin
OS_pwd = <encrypted password>
Configure Logstash(for PHC)?[Y/N]= Y
IB_REST_URL= http://midtier.oraclevcn.com:8000/PSIGW/RESTListeningConnector/PSFT_EP/PT_CREATEJSON_REST.v1/json=
IB_USER= <encrypted username>
IB_PWD= <encrypted password>
JSON_LOC=
polling_freq = 60
no_of_threads = 2
OS_host = osk.oraclevcn.com
OS_port = 9200
JSON_files?[Y/N] = Y
alert_conf?[Y/N] = Y
Configure Logstash(for Process Scheduler Metric)?[Y/N] = Y
IB_REST_PRCS_URL= http://midtier.oraclevcn.com:8000/PSIGW/RESTListeningConnector/PSFT_EP/PT_CREATEJSON_REST.v1/json=
IB_USER_PRCS= <encrypted username>
IB_PWD_PRCS= <encrypted password>
OS_host_PRCS = osk.oraclevcn.com
OS_port_PRCS = osk.oraclevcn.com
####################################################
Install opensearch-dashboards?[Y/N]= Y
opensearch-dashboards.host= osk.oraclevcn.com
opensearch-dashboards.port= 5601
Use same OS?[Y/N]= Y
OS.host[http(s)://hostname]=
OS.port=
OS.user=
OS.password=
OSD.cert.path=
OSD.cert.key=
OSD.cert.pem=
###########################
Upgrade elasticsearch to opensearch?[Y/N]= N
current.es.home=
data copy ?[Y/N]=
###########################
Upgrade OpenSearch?[Y/N]= N
current.os.home=
current.osuser=
