This topic outlines the prerequisites for provisioning a virtual EBS R12.2 instance to target environments.

Ensure your target EBS R12.2 instance is supported

See Virtual EBS R12.2 Instance Requirements to ensure you can provision your EBS R12.2 instance.

Ensure your EBS 12.2 environments comply with Oracle's documentation

Your environments must comply with Oracle's requirements for installing EBS. These requirements are outlined on Oracle E-Business Suite Release Notes, Release 12.2 (Doc ID 1320300.1) found at https://support.oracle.com.

Oracle has released an E-Business Suite Pre-Install RPM (available on ULN and public yum) that includes all required RPMs for both the appsTier and dbTier of an R12.2 installation. Details can be found in Oracle E-Business Suite Installation and Upgrade Notes Release 12 (12.2) for Linux x86-64 (Doc ID 1330701.1) found at https://support.oracle.com.

Prepare the dbTier for provisioning

Delphix Engine's Unix Environment Requirements

The dbTier must meet the target requirements outlined in Requirements for Unix Environments. These requirements are generic to all target Unix environments you add to the Delphix Engine.

oracle User

The Delphix Engine must have access to an oracle user on the dbTier.

  • This user should be a member of both the EBS dba and oinstall groups.
  • This user will be given proper permissions to manage the dbTechStack and database.
  • Ensure that the "expect" utility exists on the remote host.

oraInst.loc

An oraInst.loc file must exist on the dbTier prior to provisioning. This file will specify where the oraInventory directories live or where they should be created if they do not already exist.

The oraInst.loc file is typically located at /etc/oraInst.loc on Linux or /var/opt/oracle/oraInst.loc on Solaris. Ensure that the oraInventory to which this file points is writeable by the oracle user.

Consult Oracle EBS documentation for more information about where to place this file on your dbTier and what this file should contain.

Oracle Central Inventory

The Oracle Central Inventory is a repository for all Oracle products (software) installed on a system. Since the Central Inventory consists of system-specific information, it is required that the Central Inventory be saved on a local non-shared directory on the system. While software can be shared across nodes, the inventory should be local to each system. The global inventory/central inventory(oraInventory) for each node should be on a local file system other than Delphix mount base path.

For more info, see the following notes

  • Note 360079.1- Global and Local Inventory explained. 
  • Note 564192.1- FAQs on Central Inventory and Oracle Home Inventory (Local Inventory) in Oracle RDBMS.
  • Note 834894.1- How to Create a Clean oraInventory in Release 12?
  • Note 742477.1 - How to create, update or rebuild the Central Inventory for Applications R12?
  • Note 295185.1- How to Recreate the Global oraInventory?

/etc/hosts

Use the following to verify hostname settings:
For Oracle Linux 5, 6, and 7, and Red Hat Enterprise Linux 5, 6, and 7:

  • Verify that the /etc/hosts file is formatted as follows:
127.0.0.1 localhost.localdomain localhost
[ip_address] [node_name].[domain_name] [node_name]

Hostname and its IP address of Database host and Appstier host(s) (primary and secondary hosts for multinode) should be added in the /etc/hosts file of all the Database, host, Appstier host(s) (primary and secondary hosts for Multinode).

These correct entries are required to avoid adcfgclone timeout issue on the prompt for "Target System Domain Name".

Clean Up Before Provisioning Option

If you plan to utilize the Cleanup Before Provision option available during dbTechStack provisioning, the Delphix Engine requires the Database Oracle Home to be patched with Oracle Universal Installer (OUI) version 10.2 or above. You can read more about the Clean Up Provisioning option in Provisioning a Virtual EBS R12.2 Instance.
Note that provisioning is still possible without this option specified, but you will need to manage the target dbTier's Oracle Inventory manually to ensure that conflicting entries do not cause provisions to fail.

The Delphix Engine's Oracle Database Requirements

The dbTier must meet the target requirements outlined in Oracle Support and Requirements. These requirements are generic to all target Unix environments expected to host a virtual Oracle database.

Prepare the appsTier for Provisioning

Delphix Engine's Unix Environment Requirements

The appsTier must meet the target requirements outlined in Requirements for Unix Environments. These requirements are generic to all target Unix environments added to the Delphix Engine.

applmgr User

The Delphix Engine must have access to an applmgr user on the appsTier.

  • This user should be a member of the EBS oinstall group.
  • This user will be given proper permissions to manage the appsTier.

delphix_os OS user account

In order to separate authentication and perform privileged operations with a non-privileged OS account, first create an OS user account (i.e. "delphix_os") on the EBS DB Tier and appsTier node to be used as a target.
This user is easily created by the createDelphixOSUser.sh (located below on this page) script.

  • The primary OS group of the Delphix Engine software owner account's (i.e. delphix_os) should be the same as the EBS Database/AppsTier software owner account (i.e. oravis or applmgr).
  • Primary group = Oracle Install Group (typically oinstall), secondary group = OSDBA Group (typically dba). There are lots of cases where the OS group named dba fills this role, so be sure to check the group membership of the EBS Database and AppsTier software owner account.
  • Please note, the non-privileged OS account must have the same group as assigned to EBS Database or appsTier privileged account (like oravis or applmgr).
  • Ensure that "expect", "wget", and "lsof" utility exist on the remote host.

Host Requirements for Multinode:

  • The primary host and the secondary host user name and its UID, Group name and GID should be same to avoid the permission issue during the provisioning operation.
  • Check the high and low privilege user id and GID in the primary and secondary node and change it accordingly using groupmod with the following commands:

    $ id oravis
    uid=509(oravis) gid=502(oinstall)
    $ id delphix_os
    uid=510(delphix_os) gid=502(oinstall)
    Change the group id as root using,
    ```
    ```
    # groupmod -g 502 oinstall
    # usermod -g oinstall oravis
    # usermod -g oinstall delphix_os

    Primary and secondary appstier host need to be configured with passwordless ssh if the target WLS password is going to be different from the source WLS password. Passwordless ssh configuration on the Appstier multinode host requirement is required for configuring WLS password different from source.

Host Requirements:

To accomplish necessary tasks on the EBS Database and appsTier target hosts, the Delphix OS user account (henceforth referred to as "delphix_os") requires privilege elevation specifications. Ensure that "wget" and "lsof" utilities exist on the remote host.

Here is an example specification for the "sudo" privilege elevation utility, using the "visudo" to edit the "sudoers" configuration file.  This specification makes the following assumptions:

  • OS = Linux
  • OS account owning Oracle EBS Database Tier is named oravis
  • OS account owning Oracle EBS appsTier is named applvis
  • EBS Database and appsTier system base directory is /u01/oracle/VIS. This can be prefixed before all the below-mentioned commands to ensure the same is being executed from relevant paths.

    The following sudoers entry is only for template purposes. Modify the path in the below sudoers entry with the appropriate binary paths of your environment.

Entries required for Provisioning via low privileged user (delphix_os):

EBS DB Tier

Defaults:delphix_os !requiretty

delphix_os ALL=NOPASSWD: /bin/su - oravis -c /bin/mount, /bin/su - oravis -c /bin/umount, /bin/su - oravis -c echo *, /bin/su - oravis -c export *, /bin/su - oravis -c test*mkdir*, /bin/su - oravis -c test*touch*chmod 750*cat*, /bin/su - oravis -c */EBS_kill/kill_script.sh*, /bin/su - oravis -c rm -f */test_status.tmp*, /bin/su - oravis -c cp -f */dlpx_force_autoflush*; chmod 755 */dlpx_force_autoflush*, /bin/su - oravis -c rm -f */dlpx_force_autoflush*, /bin/su - oravis -c */*.env*bin/lsnrctl status*, /bin/su - oravis -c */*.env*/addlnctl.sh*, /bin/su - oravis -c rm -f /u01/oracle/VIS/*/.delphix_adpreclone.lck*, /bin/su - oravis -c rm -rf */appsutil/clone/dbts*, /bin/su - oravis -c touch /u01/oracle/VIS/*/.delphix_adpreclone.lck*, /bin/su - oravis -c */bin/runInstaller -silent -detachHome*, /bin/su - oravis -c export PATH* export PERL5LIB*perl -mdlpx_force_autoflush */adcfgclone.pl dbTechStack*, /bin/su - oravis -c export PERL5LIB*perl -mdlpx_force_autoflush */adpreclone.pl dbTechStack*, /bin/su - oravis -c cd *; make -f ins_rdbms.mk*ioracle*, /bin/su - oravis -c cd *; make -f ins_rdbms.mk dnfs_off*, /bin/su - oravis -c rm -f *bak, /bin/su - oravis -c mv *, /bin/su - oravis -c */*.env*sqlplus* as sysdba*, /bin/su - oravis -c */*.env*perl */appsutil/clone/bin/adcfgclone.pl dbconfig*, /bin/su - oravis -c */*.env*perl */appsutil/scripts/*/adpreclone.pl database*, /bin/su - oravis -c sed*sqlnet.ora*, /bin/su - oravis -c */*.env*sqlplus apps*, /bin/su - oravis -c */*.env*; make -f *rdbms/lib/ins_rdbms.mk dnfs_off*, /bin/su - oravis -c */*.env*; ln -s *, /bin/mount, /bin/umount, /bin/ps, /bin/mkdir, /bin/su - oravis -c source* -dboraclehome* perl*txkGenCDBTnsAdmin.pl*, /bin/su - oravis -c */*.env*perl */appsutil/bin/txkCfgUtlfileDir.pl -contextfile*, /bin/su - oravis -c */*.env* mkdir -p*, /bin/su - oravis -c chmod 775 *dbs*, /bin/su - oravis -c chmod 6751 */bin/oracle*, /bin/su - oravis -c cp *dlpx_force_autoflush.pm*, /bin/su - oravis -c chmod 755 */dlpx_force_autoflush*, /bin/su - oravis -c umask*touch *source_apps_file.txt, /bin/su - oravis -c mkdir -p*, /bin/su - oravis -c cp *pairsfile*, /bin/su - oravis -c *perl -mdlpx_force_autoflush */adclonectx.pl*, /bin/su - oravis -c *perl -mdlpx_force_autoflush */adcfgclone.pl dbTechStack*, /bin/su - oravis -c touch */.delphix_adpreclone.lck*, /bin/su - oravis -c rm -f */.delphix_adpreclone.lck*

EBS appsTier

Defaults:delphix_os !requiretty

delphix_os ALL=NOPASSWD: /bin/su - applvis -c echo *, /bin/su - applvis -c rm *.dlpx_run_edition*, /bin/su - applvis -c rm -f *dlpx_force_autoflush*, /bin/su - applvis -c cd *echo *dlpx_force_autoflush*, /bin/su - applvis -c export PATH* export PERL5LIB* cd *perl -mdlpx_force_autoflush ./adpreclone.pl appsTier*, /bin/su - applvis -c */rsync*, /bin/su - applvis -c test*mkdir*, /bin/su - applvis -c test*touch*chmod 750*cat*, /bin/su - applvis -c */EBS_kill/kill_script.sh*, /bin/su - applvis -c rm -f */test_status.tmp*, /bin/su - applvis -c */*.env* sqlplus -s *apps*, /bin/su - applvis -c */adstrtal.sh*, /bin/su - applvis -c */adstpall.sh*, /bin/su - applvis -c */*.env* cd *adautocfg.sh*, /bin/su - applvis -c export PATH* export PERL5LIB* cd *perl -mdlpx_force_autoflush ./adcfgclone.pl appsTier*, /bin/su - applvis -c *perl -mdlpx_force_autoflush */adclonectx.pl addnode contextfile*pairsfile*outfile*, /bin/su - applvis -c *adadminsrvctl.sh*, /bin/su - applvis -c *admanagedsrvctl.sh*, /bin/su - applvis -c *adnodemgrctl.sh*, /bin/su - applvis -c */*.env* cd *perl -mdlpx_force_autoflush ./txkUpdateEBSDomain.pl*contextfile*action*updateAdminPassword*, /bin/su - applvis -c */bin/runInstaller -silent -detachHome*, /bin/su - applvis -c rm -rf */inst/apps/*, /bin/su - applvis -c rm -rf *FMW_Home*, /bin/su - applvis -c rm -rf *fs*, /bin/su - applvis -c find*exec rm -rf *, /bin/su - applvis -c cp */inst/apps/*appl/admin* */inst/apps/*, /bin/su - applvis -c */*EBSapps.env*perl */patch/115/bin/txkSetAppsConf.pl*contextfile*configoption*oacore*oafm*forms*formsc4ws*, /bin/su - applvis -c rsync -aH --delete --ignore-errors */EBSapps/ */EBSapps/*, /bin/su - applvis -c rm */serviceStartfile.tmp*, /bin/su - applvis -c rm -rf */change_apps_password*, /bin/su - applvis -c mkdir -p */change_apps_password*, /bin/su - applvis -c */*.env* run; cd */change_apps_password*/fnd/12.0.0/bin/FNDCPASS*apps*system*SYSTEM APPLSYS*, /bin/su - applvis -c */*.env* sqlplus *apps*, /bin/su - applvis -c */*.env* rm -f */updateDSpwd.py*cat */updateDSpwd.py*, /bin/su - applvis -c */*.env*/adautocfg.sh*, /bin/su - applvis -c */*.env* rm -f */serverStateAll.py*cat*serverStateAll.py*, /bin/su - applvis -c */*.env* run; */wlserver_10.3/common/bin/wlst.sh */updateDSpwd.py*, /bin/su - applvis -c */*.env*; */wlserver_10.3/common/bin/wlst.sh */serverStateAll.py*, /bin/su - applvis -c *lsof*, /bin/su - applvis -c *sed *, /bin/su - applvis -c */*.env*;*adapcctl.sh status*, /bin/mount, /bin/umount, /bin/ps, /bin/su - applvis -c find*, /bin/su - applvis -c cp *dlpx_force_autoflush.pm*, /bin/su - applvis -c *perl -mdlpx_force_autoflush ./adcfgclone.pl appsTier*, /bin/su - applvis -c cat*serverStateAll.py*, /bin/su - applvis -c cat*updateDSpwd.py*, /bin/su - applvis -c mkdir -p */pairsdir*, /bin/su - applvis -c export PERL5LIB* cd *perl -mdlpx_force_autoflush *adpreclone.pl appsTier*, /bin/su - applvis -c mv *scratch_file* *, /bin/su - applvis -c pmap -r*, /bin/su - applvis -c */*.env* patch; */wlserver_10.3/common/bin/wlst.sh */updateDSpwd.py*


oraInst.loc

An oraInst.loc file must exist on every appsTier node prior to provisioning. This file will specify where the oraInventory directories live or where they should be created if they do not already exist.

The oraInst.loc file is typically located at /etc/oraInst.loc on Linux or /var/opt/oracle/oraInst.loc on Solaris. Ensure that the oraInventory to which this file points is writable by the applmgr user or application tier OS user.

If you are provisioning a single-node appsTier,

    • [Required] The global inventory/central inventory(oraInventory) for each node should be on a local file system other than Delphix mount base path.

If you are provisioning a multi-node appsTier,

    • The following recommendations are mandatory;
      • While configuring SHARED APPL_TOP application, Delphix expects the oraInventory directory path should be beneath the Delphix mount base path.
      • The inventory_loc variable defined in file /etc/oraInst.loc on all application servers should point to same shared oraInventory directory location on shared Delphix mount base path.
      • The Delphix Engine's cloning workflow requires that all nodes in the appsTier have access to the shared oraInventory directories via Delphix-provided storage.
    • [Required] The Delphix Engine's automation requires that all nodes in the appsTier have access to the oraInventory directories via Delphix-provided storage.

Objective of placing oraInventory on Shared Delphix mount storage

While configuring shared APPL_TOP application, instead of storing oraInventory on the local directory of each server, all application servers should  point to the same oraInventory directory on shared Delphix mount storage, so that you need to patch only on a single server and the oralnventory gets in-sync for all application servers thus preventing the oralnventory of remaining servers becoming invalid.

Details can be found in Sharing The Application Tier File System in Oracle E-Business Suite Release 12 (Doc ID 384248.1) found at https://support.oracle.com. You can also consult Oracle EBS documentation for more information about where to place this file on your appsTier and what this file should contain.

Clean Up Before Provisioning Option

If you plan to utilize the Cleanup Before Provision option available during appsTier provisioning, the Delphix Engine requires the Tools Oracle Home to be patched with Oracle Universal Installer (OUI) version 10.2 or above. You can read more about this provisioning option in Provisioning a Virtual EBS R12.2 Instance.
Note that provisioning is still possible without this option specified, but you will need to manage the target appTier's Oracle Inventory manually to ensure that conflicting entries do not cause provisions to fail.

Script

createDelphixOSUser.sh

Related Topics