Installing Oracle Unified Directory has always been easy. The installation guide for OUD 11c as well OUD 12 is simple and straight forward. Additionally Oracle does provide a couple of MOS notes for different deployment scenarios. Nevertheless there is always room for improvement 🙂 During my work on OUD to go on Raspberry Pi Zero or on Docker images for OUD I’ve had to optimise the installation of OUD. In this blog post I’ll show how I did simplify respectively optimise my OUD installations.
Prerequisites
Standalone or Collocated?
Since the latest release, Oracle allows a couple of different ways how OUD can be deployed.
- Standalone Oracle Unified Directory Server With this deployment method OUD is used as a straight forward LDAP server with a small footprint. Administration has to be done via command line (eg.
dsconfig
,ldapmodify
, etc) or when possible with a third party LDAP Browser. - Collocated Oracle Unified Directory Server with OUD and OUDSM in a separate domains. OUD and Fusion Middleware (FMW) Infrastructure are installed in the same middleware home directory. In non-collocated mode, OUD and OUDSM will be deployed in different domains.
- Collocated Oracle Unified Directory Server with OUD and OUDSM in a single domain. OUD and Fusion Middleware Infrastructure are installed in the same middleware home directory. In collocated mode OUD and OUDSM will be deployed under the same domain.
- Collocated Oracle Unified Directory Server But just used for OUDSM. This is not really an official deployment method, but becomes quite handy when you’ve deployed a couple of standalone OUD server. The OUD software is just deployed into FMW Infrastructure to be able to create and start the OUDSM web application. There will only be an OUDSM domain deployed.
For simple OUD installation’s I usually just install and deploy a standalone OUD. This installation is fast and has a small foot print. I do use dsconfig
for the administration and the Apache Directory Studio for general LDAP browsing. If I do need an OUDSM from time to time, I install a dedicated OUDSM (Collocated OUD Server) or use my OUDSM docker container.
Environment
OUD does not make great demands on the environment. Nevertheless, I usually follow the Oracle Flexible Architecture OFA and a couple of environment scripts similar to the Trivadis BasEnv. See my blog post about OUD environment scripts.
For the further installation steps I stick to the following environment variables.
export SOFTWARE=$HOME/software export ORACLE_BASE=/u00/app/oracle export JAVA_HOME=$ORACLE_BASE/product/jdk1.8.0_144 export OUD_HOME=$ORACLE_BASE/product/oud12.2.1.3.0 export FMW_HOME=$ORACLE_BASE/product/fmw12.2.1.3.0
In the table below you find a short description of the environment variables. For further explanations see blog post OUD environment scripts.
ENV Variable | Path | Description |
---|---|---|
$ORACLE_BASE, $cdob | /u00/app/oracle | Base directory for the oracle binaries |
$ORACLE_HOME, $OUD_HOME | $ORACLE_BASE/product/oud12.2.1.3.0 | Standalone Oracle Unified Directory binaries |
$ORACLE_HOME, $OUD_HOME | $ORACLE_BASE/product/fmw12.2.1.3.0 | Collocated Oracle Unified Directory binaries |
$JAVA_HOME | $ORACLE_BASE/product/jdk1.8.0_144 | Java used for OUD |
$OUD_INSTANCE_BASE, $cdib | $ORACLE_BASE/instances | Base directory for the instance homes |
$SOFTWARE | $HOME/software | Software Depot for the JAR’s |
To do a silent installation, we will require a response file. In case of OUD and FMW it is a simple text file to define a few generic installation values. The same response file can be used for either of the products. We add the missing value INSTALL_TYPE when calling the installer.
echo "[ENGINE]" > $ETC_BASE/install.rsp echo "Response File Version=1.0.0.0.0" >> $ETC_BASE/install.rsp echo "[GENERIC]" >> $ETC_BASE/install.rsp echo "DECLINE_SECURITY_UPDATES=true" >> $ETC_BASE/install.rsp echo "SECURITY_UPDATES_VIA_MYORACLESUPPORT=false" >> $ETC_BASE/install.rsp
Beside the response file we also have to have an inventory location file. You probably have to adjust the group name to fit your environment.
echo "inventory_loc=$ORACLE_BASE/oraInventory" > $ETC_BASE/oraInst.loc echo "inst_group=oinstall" >> $ETC_BASE/oraInst.loc
Software
To start the installation, you first have to get the required software packages. Oracle makes it easy, you can either download the software on Oracle Technology Network (OTN), Oracle Software Delivery Cloud (OSDC) or My Oracle Support (MOS). All download URLs are ok, but I prefer to do the download direct from MOS since this allows to use curl
with a simple download URL. The downside is, that this requires a valid MOS account.
Create a netrc file for curl
with your MOS credentials.
MOS_USER="<your MOS USER>" MOS_PASSWORD="</your><your MOS PASSWORD>" echo "machine login.oracle.com login $MOS_USER password $MOS_PASSWORD" >$SOFTWARE/.netrc
OK, lets download the software.
Java 1.8 update 144, Patch ID 26512979:
curl --netrc-file $SOFTWARE/.netrc \ --cookie-jar $SOFTWARE/cookie-jar.txt \ --location-trusted "https://updates.oracle.com/Orion/Services/download/p26512979_180144_Linux-x86-64.zip?aru=21443434&patch_file=p26512979_180144_Linux-x86-64.zip" \ --output $SOFTWARE/java/p26512979_180144_Linux-x86-64.zip
Oracle Unified Directory 12.2.1.3.0, Patch ID 26270957:
curl --netrc-file $SOFTWARE/.netrc \ --cookie-jar $SOFTWARE/cookie-jar.txt \ --location-trusted "https://updates.oracle.com/Orion/Services/download/p26270957_122130_Generic.zip?aru=21504981&patch_file=p26270957_122130_Generic.zip" \ --output $SOFTWARE/fmw/p26270957_122130_Generic.zip
FWM Infrastructure 12.2.1.3.0, Patch ID 26269885:
curl --netrc-file $SOFTWARE/.netrc \ --cookie-jar $SOFTWARE/cookie-jar.txt \ --location-trusted "https://updates.oracle.com/Orion/Services/download/p26269885_122130_Generic.zip?aru=21502041&patch_file=p26269885_122130_Generic.zip" \ --output $SOFTWARE/fmw/p26269885_122130_Generic.zip
As soon as the software has been downloaded, we will unpack the OUD and FMW packages. In the example below it’s done directly by using the jar
utility.
cd $SOFTWARE/fmw $JAVA_HOME/bin/jar -xvf $SOFTWARE/fmw/p26270957_122130_Generic.zip $JAVA_HOME/bin/jar -xvf $SOFTWARE/fmw/p26269885_122130_Generic.zip
Java
Although Java is probably already installed on you system, its recommended to install a dedicated JVM for OUD. This way we can keep our java installation for OUD independent from the OS default java. The installation is done with just a untar into the right directory. I do this with just one combined command of unzip
and tar
.
unzip -p $SOFTWARE/java/p26512979_180144_Linux-x86-64.zip \ *tar* |tar zxv -C $ORACLE_BASE/product
Install Standalone OUD
Start the silent installation with the extracted JAR file and the previously created response file. Set INSTALL_TYPE to Standalone Oracle Unified Directory Server (Managed independently of WebLogic server) will initiate a standalone installation into the defined ORACLE_HOME.
$JAVA_HOME/bin/java -jar $SOFTWARE/fmw/fmw_12.2.1.3.0_oud.jar -silent \ -responseFile $ETC_BASE/install.rsp \ -invPtrLoc $ETC_BASE/oraInst.loc \ -ignoreSysPrereqs -force \ -novalidation ORACLE_HOME=$OUD_HOME \ INSTALL_TYPE="Standalone Oracle Unified Directory Server (Managed independently of WebLogic server)"
That’s it. After a couple of minutes the OUD binaries are installed and ready to deploy an Oracle Directory or Proxy server.
Install Collocated OUD
To do a collocated OUD installation, we first have to install FMW infrastructure before installing OUD. The installation is done again in silent mode by specifying the ORACLE_HOME and the INSTALL_TYPE. Execution of this JAR will take longer since it is around 1.5GB.
$JAVA_HOME/bin/java -jar $SOFTWARE/fmw/fmw_12.2.1.3.0_infrastructure.jar \ -silent \ -responseFile $ETC_BASE/install.rsp \ -invPtrLoc $ETC_BASE/oraInst.loc \ -ignoreSysPrereqs -force \ -novalidation ORACLE_HOME=$FMW_HOME \ INSTALL_TYPE="WebLogic Server"
As soon as the FMW installation has been successfully finished, we initiate the OUD installation. For ORACLE_HOME we have to choose the same directory as using for the FMW infrastructure. The INSTALL_TYPE is set to collocated mode.
$JAVA_HOME/bin/java -jar $SOFTWARE/fmw/fmw_12.2.1.3.0_oud.jar -silent \ -responseFile $ETC_BASE/install.rsp \ -invPtrLoc $ETC_BASE/oraInst.loc \ -ignoreSysPrereqs -force \ -novalidation ORACLE_HOME=$OUD_HOME \ INSTALL_TYPE="Collocated Oracle Unified Directory Server (Managed through WebLogic server)"
In this newly created Oracle home directory we now have a collocated Oracle Unified Directory Server. These binaries can be used to deploy OUD and OUDSM in separate domains, in a single domain or just to deploy an OUDSM server.
Next Steps
For know we just have the OUD binaries. The next steps will be to deploy a OUD directory or proxy server using either oud-setup
or oud-proxy-setup
tool. Both tools can be used in command line mode, GUI mode or silently by specify the corresponding parameters. The statement below is an example to create an OUD directory server instance oud_demo for the base DN dc=postgasse,dc=org with 20 sample records.
$OUD_HOME/oud/oud-setup \ --cli \ --instancePath $OUD_INSTANCE_BASE/oud_demo/OUD \ --adminConnectorPort 4444 \ --rootUserDN cn=Directory\ Manager \ --rootUserPasswordFile $ETC_BASE/oud_demo_pwd.txt \ --ldapPort 1389 \ --baseDN dc=postgasse,dc=org \ --sampleData 20 \ --serverTuning jvm-default \ --offlineToolsTuning jvm-default \ --no-prompt \ --noPropertiesFile
Files and References
Below you find a few references related to Oracle Unified Directory:
- Oracle JDK 8 Update 144 for ARM 32Bit VFP HardFP MOS Patch 26512975
- Oracle Unified Directory FMW 12.2.1.3.0 MOS Patch 26270957
- Oracle Unified Directory 12.2.1.3.0 on Oracle Technology Network
- Oracle Software Delivery Cloud OSDC
- Environment Scripts for OUD on www.oradba.ch
- Github repository for the OUD environment scripts oudbase
- OUD base environment installation script. It’s a bash script including a TAR. oudbase_install.sh
- OUD base environment as TAR archive without installation script. oudbase_install.tgz
- Github repository for the OUD environment scripts oudbase
- Oracle Unified Directory 12c PS3 Released [2300623.1]
- OUD 12c – How to Download and Install OUD 12c in Standalone Mode (with No Domain Configuration) [2298379.1]
- OUD 12c: How to Install OUD 12c and OUDSM 12c in Collocated Mode (Under Same Domain) or Non-Collocated Mode (Under Separate Domains) [2303721.1]
- OUD 12c: Understanding the Oracle Unified Directory 12c Installation Directories MW_HOME, PRODUCT_HOME, OUD ORACLE_HOME, DOMAIN_HOME WLS_HOME ORACLE_COMMON Home [2302813.1]
- All Java SE Downloads on MOS [1439822.1]
- Information Center: Using Oracle Unified Directory (OUD) [1419823.2]
Hi Stefan,
Am getting the following error during silent install of OUD;
[WARNING] [] [oracle.sysman.oii.oiic.OiicNextGenInstallAPISession] [host: blah.blah] [nwaddr: xxx.xxx.xxx.xxx] [tid: 19] [userId: oracle] [ecid: 0000M56TbVICwkGMyyaeMG1QS3wM000004,0] The following prerequisites were found to be missing:[[wls_server – 12.2.1.3.0]]
The we followed you instructions above for collocated OUD and installed infrastructure.jar first.
Did we miss something? Do we still need to instal WLS prior OUD?
Many thanks in advance for your kind assistance
Hi
It depends WLS is only required if you do the collocated installation. You either have to do the standalone setup where you just install OUD binaries or the collocated setup where you install wls and oud in one middleware home.
Creating the OUD instance with setup-oud should work in both cases.
When do you get this error?
Regards
Stefan