Silent Installation and Configuration of Standalone Oracle HTTP Server
Posted by Dirk Nachbar on Monday, April 10, 2017
Currently I am working in a project for which will be needed the Oracle HTTP Server (OHS) in a Standalone Mode as a frontend Web Server for a Oracle SOA 12.2.1.2.0 environment.
As I am not really a fan of clicking through several installers and configuration wizards, I have created some scripts for a complete silent installation of the Standalone Oracle HTTP Server 12.2.1.2.0 and on top a silent configuration of the standalone Domain for the Oracle HTTP Server.
Make sure you that you have a JDK 1.8 on your server, I prefer to install the JDK under the Oracle user, e.g. /u00/app/oracle/product/jdk1.8.0_121
Connect to your server as oracle user and create following files under the directory /u00/app/oracle/tmp
webtier.rsp
oraInst.loc
Now we can extract the installation software and install the Oracle HTTP Server in silent mode
Now we have installed the Oracle HTTP Server Software.
For this I have 3 scripts:
setLocalEnv.sh
The above Environment Variables are all self-explained, you may align them to your specific needs.
cr_ohs_domain.sh
cr_ohs_domain.py
Now we can execute the cr_ohs_domain.sh which will create silently the Standalone Domain for our Oracle HTTP Server:
And thats it, now you can start your Oracle HTTP Server Instance named ohs1
As I am not really a fan of clicking through several installers and configuration wizards, I have created some scripts for a complete silent installation of the Standalone Oracle HTTP Server 12.2.1.2.0 and on top a silent configuration of the standalone Domain for the Oracle HTTP Server.
Silent Installation of the Oracle HTTP Server Software
For the following example, we will use following naming convention:- MW_HOME=/u00/app/oracle/product/fmw-webtier-12.2.1.2.0
- JAVA_HOME=/u00/app/oracle/product/jdk1.8.0_121
- DOMAIN_HOME=/u00/app/oracle/user_projects/domains/ohs_domain
Make sure you that you have a JDK 1.8 on your server, I prefer to install the JDK under the Oracle user, e.g. /u00/app/oracle/product/jdk1.8.0_121
Connect to your server as oracle user and create following files under the directory /u00/app/oracle/tmp
webtier.rsp
[ENGINE] Response File Version=1.0.0.0.0 [GENERIC] ORACLE_HOME=/u00/app/oracle/product/fmw-webtier-12.2.1.2.0 INSTALL_TYPE=Standalone HTTP Server (Managed independently of WebLogic server) DECLINE_SECURITY_UPDATES=true SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
oraInst.loc
inst_group=oinstall inventory_loc=/u00/app/oracle/oraInventory
Now we can extract the installation software and install the Oracle HTTP Server in silent mode
oracle@server> cd /u00/app/oracle/tmp oracle@server> unzip fmw_12.2.1.2.0_ohs_linux64_Disk1_1of1.zip oracle@server> ./fmw_12.2.1.2.0_ohs_linux64.bin -jreLoc /u00/app/oracle/product/jdk1.8.0_121 -silent -responseFile /u00/app/oracle/tmp/webtier.rsp -invPtrLoc /u00/app/oracle/tmp/oraInst.loc 0%...................................................................................................100% Launcher log file is /tmp/OraInstall2017-04-10_12-39-12PM/launcher2017-04-10_12-39-12PM.log. Checking if CPU speed is above 300 MHz. Actual 2194.918 MHz Passed Checking swap space: must be greater than 512 MB. Actual 3071 MB Passed Checking if this platform requires a 64-bit JVM. Actual 64 Passed (64-bit not required) Checking temp space: must be greater than 300 MB. Actual 8528 MB Passed . . . . . . Percent Complete : 90 Visit http://www.oracle.com/support/policies.html for Oracle Technical Support policies. Percent Complete : 100 The installation of Oracle HTTP Server 12.2.1.2.0 completed successfully. Logs successfully copied to /u00/app/oracle/oraInventory/logs.
Now we have installed the Oracle HTTP Server Software.
Silent Configuration of the Standalone Domain for the Oracle HTTP Server
The next step is to configure in a silent way the required Standalone Domain for our Oracle HTTP Server.For this I have 3 scripts:
- setLocalEnv.sh = contains all necessary Environment Variables for the creation of the Standalone Domain
- cr_ohs_domain.sh = Wrapper Script to source the setLocalEnv.sh and execute the cr_ohs_domain.py
- cr_ohs_domain.py = Python Script to create the Standalone Domain for the Oracle HTTP Server
setLocalEnv.sh
# # Author: Dirk Nachbar # # http://dirknachbar.blogspot.com # # Environment Script for silent Standalone OHS Domain Creation # # export SCRIPT_HOME=$PWD export MW_HOME=/u00/app/oracle/product/fmw-webtier-12.2.1.2.0 export WLST_HOME=$MW_HOME/oracle_common/common/bin export JAVA_HOME=/u00/app/oracle/product/jdk1.8.0_121 export DOMAIN_NAME=ohs_domain export DOMAIN_HOME=/u00/app/oracle/user_projects/domains/$DOMAIN_NAME export NM_LISTENADDRESS=`hostname -f` export NM_TYPE=SSL export NM_PORT=5557 export NM_USERNAME=nodemanager export NM_PASSWORD=welcome1 export NM_HOME=$DOMAIN_HOME/nodemanager export OHSINSTANCENAME=ohs1 export OHSADMINPORT=9999 export OHSHTTPPORT=7777 export OHSHTTPSPORT=4443
The above Environment Variables are all self-explained, you may align them to your specific needs.
cr_ohs_domain.sh
#!/bin/sh # # Author: Dirk Nachbar # # http://dirknachbar.blogspot.com # # Shell Script Wrapper for Silent Standalone OHS Domain Creation # start_time=$(date +%s) . $PWD/setLocalEnv.sh echo "=============================================" echo " Program: cr_ohs_domain.sh ....." echo "=============================================" if [ -z "${WLST_HOME}" ]; then echo " Environment not correctly set - please verify" exit 1 fi if ! test -d "${DOMAIN_HOME}"; then echo "=============================================" echo " Domain will be installed ....." echo "=============================================" if [ -z "${MW_HOME}" -o -z "${JAVA_HOME}" -o -z "${DOMAIN_NAME}" -o -z "${DOMAIN_HOME}" -o -z "${NM_LISTENADDRESS}" -o -z "${NM_TYPE}" -o -z "${NM_PORT}" -o -z "${NM_USERNAME}" -o -z "${NM_PASSWORD}" -o -z "${NM_HOME}" -o -z "${OHSADMINPORT}" -o -z "${OHSHTTPPORT}" -o -z "${OHSHTTPSPORT}" ]; then echo " Environment not set - Exit" exit 1 fi # In case we are facing problems with /dev/random export CONFIG_JVM_ARGS=-Djava.security.egd=file:/dev/./urandom:$CONFIG_JVM_ARGS ${WLST_HOME}/wlst.sh ${SCRIPT_HOME}/cr_ohs_domain.py # Set End Time finish_time=$(date +%s) echo "Finished" echo "Domain Build Time: $(( $((finish_time - start_time))/60)) minutes." else echo "Domain is already installed ..." fi
cr_ohs_domain.py
#!/usr/bin/python # # Author: Dirk Nachbar # # http://dirknachbar.blogspot.com # import os, sys v_mwHome=os.environ['MW_HOME'] v_jdkHome=os.environ['JAVA_HOME'] v_domainHome=os.environ['DOMAIN_HOME'] v_domainName=os.environ['DOMAIN_NAME'] v_NMUsername=os.environ['NM_USERNAME'] v_NMPassword=os.environ['NM_PASSWORD'] v_NMHome=os.environ['NM_HOME'] v_NMHost=os.environ['NM_LISTENADDRESS'] v_NMPort=os.environ['NM_PORT'] v_NMType=os.environ['NM_TYPE'] v_OHSInstanceName=os.environ['OHSINSTANCENAME'] v_OHSAdminPort=os.environ['OHSADMINPORT'] v_OHSHTTPPort=os.environ['OHSHTTPPORT'] v_OHSHTTPSPort=os.environ['OHSHTTPSPORT'] readTemplate(v_mwHome +'/wlserver/common/templates/wls/base_standalone.jar') addTemplate(v_mwHome +'/ohs/common/templates/wls/ohs_standalone_template.jar') cd('/') create(v_domainName, 'SecurityConfiguration') cd('SecurityConfiguration/' + v_domainName) set('NodeManagerUsername',v_NMUsername) set('NodeManagerPasswordEncrypted',v_NMPassword) setOption('NodeManagerType', 'CustomLocationNodeManager'); setOption('NodeManagerHome', v_NMHome); setOption('JavaHome', v_jdkHome ) cd('/Machines/localmachine/NodeManager/localmachine') cmo.setListenAddress(v_NMHost); cmo.setListenPort(int(v_NMPort)); cmo.setNMType(v_NMType); delete(v_OHSInstanceName,'SystemComponent') create (v_OHSInstanceName,'SystemComponent') cd('/OHS/'+v_OHSInstanceName) cmo.setAdminPort(v_OHSAdminPort) cmo.setListenPort(v_OHSHTTPPort) cmo.setSSLListenPort(v_OHSHTTPSPort) writeDomain(v_domainHome)
Now we can execute the cr_ohs_domain.sh which will create silently the Standalone Domain for our Oracle HTTP Server:
oracle@server> cd /u00/app/oracle/tmp ./cr_ohs_domain.sh ============================================= Program: cr_ohs_domain.sh ..... ============================================= ============================================= Domain will be installed ..... ============================================= Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands Finished Domain Build Time: 1 minutes.
And thats it, now you can start your Oracle HTTP Server Instance named ohs1
oracle@server> cd /u00/app/oracle/user_projects/domains/ohs_domain/bin oracle@server> ./startNodeManager > /dev/null 2>&1 & oracle@server> ./startComponent.sh ohs1 storeUserConfig
Categories: Oracle HTTP Server