Oracle FPP Server Setup: Gold Image → Working Copy → Patched Baseline (Step-by-Step)

ORACLE DATABASE ADMINISTRATION

Configuring an Oracle Fleet Patching and Provisioning (FPP) Server

A Practical, Step-by-Step Field Guide

Munish Kumar Karna  |  Senior Database Solution Architect & Oracle DBA

 

Why This Matters

Oracle Fleet Patching and Provisioning (FPP) — formerly Rapid Home Provisioning (RHP) — is Oracle's framework for standardizing how Grid Infrastructure and database homes are imaged, distributed, and patched across a fleet of servers. Instead of patching each node manually, a certified FPP Server lets you build a validated 'gold image,' clone it into working copies, apply interim patches once, and roll the updated image out consistently — cutting patching effort and risk across large estates.

Below is a condensed walkthrough of standing up an FPP Server, importing a Grid Infrastructure 23ai gold image, applying a patch bundle to a working copy, and re-publishing it as a new certified image — based on a hands-on build I recently completed.

Prerequisites

•     Oracle Grid Infrastructure already installed and the cluster healthy.

•     A dedicated ASM disk group provisioned for the FPP repository and image store.

•     Any existing FPP "local mode" configuration removed from the cluster.

•     Sufficient swap space, staging disk, and network connectivity between fleet nodes.

STEP 1  Remove Any Existing Local-Mode FPP Configuration

Stop and remove any pre-existing rhpserver resource before reconfiguring:

[root@fleet ~]# srvctl stop rhpserver
[root@fleet ~]# srvctl remove rhpserver

STEP 2  Configure the Internal Metadata Repository

FPP stores its metadata in a dedicated repository database (here, PDB "PDBREPO" inside CDB "repo"), administrator-managed and running on the ASM disk group reserved for OCR/FPP:

[oracle@fleet ~]$ srvctl config database -d repo
Database unique name: repo
Oracle home: /u01/app/oracle/product/26.0.0/dbhome_1
Disk Groups: OCR
Database role: PRIMARY   Management policy: AUTOMATIC

[oracle@fleet ~]$ srvctl config pdb -db repo
Pluggable database name: PDBREPO
Pluggable database PDBREPO is enabled.

STEP 3  Create and Start the FPP Server Resource

[root@fleet ~]# srvctl add rhpserver \
  -storage /rhp_repo \
  -diskgroup FLEETDATA \
  -dbtype EXTERNAL \
  -connstr "fleet:1521/pdbrepo" \
  -dbadmin sys

[root@fleet ~]# srvctl start rhpserver
[root@fleet ~]# srvctl status rhpserver
Rapid Home Provisioning Server is enabled
Rapid Home Provisioning Server is running on node fleet

Note: The repository disk group, connect string, and OS credentials must all be validated before this step — a failed rhpserver start is almost always traced back to repository connectivity.

STEP 4  Import and Verify the Gold Image

A Grid Infrastructure software ZIP is imported as a named, versioned "gold image" that all working copies will be cloned from:

[oracle@fleet ~]$ rhpctl import image -image GI_23_26_2_GOLD \
  -zip /home/oracle/23.26.2GoldImage/Grid/p39099896_230000_Linux-x86-64.zip \
  -imagetype ORACLEGISOFTWARE

fleet.localdomain: Successfully executed clone operation.
'DetachHome' was successful.

⏱  Executed: Mon 10 Aug 2026, 11:51 AM  (from DetachHome install log)

[oracle@fleet ~]$ rhpctl query image -image GI_23_26_2_GOLD
Image name: GI_23_26_2_GOLD
Image state: PUBLISHED
Image size: 2774 Megabytes
Image Version: 23.0.0.0.0:23.26.2.0.0
Complete: TRUE

STEP 5  Configure Passwordless SSH

FPP orchestration relies on key-based SSH between the FPP server and target nodes:

[oracle@fleet ~]$ ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
[oracle@fleet ~]$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[oracle@fleet ~]$ chmod 700 ~/.ssh
[oracle@fleet ~]$ chmod 600 ~/.ssh/authorized_keys

[oracle@fleet ~]$ ssh fleet date
Mon Aug 10 12:16:50 +0545 2026

⏱  Executed: Mon 10 Aug 2026, 12:14–12:16 PM (+0545)

STEP 6  Provision a Working Copy from the Gold Image

[oracle@fleet ~]$ rhpctl add workingcopy -image GI_23_26_2_GOLD \
  -workingcopy GI_23_26_wc \
  -path /rhp_repo/workingcopies/GI_23_26_wc \
  -softwareonly

fleet.localdomain: Oracle home provisioned.
fleet.localdomain: Working copy creation completed.

STEP 7  Validate Prerequisites and Apply the Patch Bundle

Before applying, every interim patch is checked for conflicts against the working-copy Oracle home using OPatch's prereq check, then applied in sequence:

[oracle@fleet 39568945]$ $ORACLE_HOME/OPatch/opatch prereq \
  CheckConflictAgainstOHWithDetail -phBaseDir .../39578879
Prereq "checkConflictAgainstOHWithDetail" passed.
Log file: opatch2026-08-10_14-10-47PM_1.log

[oracle@fleet 39568945]$ $ORACLE_HOME/OPatch/opatch apply \
  /u01/app/patches/PatchOracleGI23.26.3/39568945/39578879
...
Patch 39578879 successfully applied.
Log file: opatch2026-08-10_14-16-57PM_1.log

⏱  Executed: Mon 10 Aug 2026, 14:10–14:37 PM  (~27 min, 5 patches)

This was repeated for each interim patch in the January 2026 GI bundle (39578879, 39578865, 39578862, 39578859, 39578856) — each super-set patch cleanly superseding an existing sub-set patch already in the image. OPatch's own log timestamps show the full prereq-check-to-apply cycle for all five patches completed in under 30 minutes:

Patch ID

Prereq Check

Applied

39578879

14:10:47 PM

14:16:57 PM

39578865

14:11:19 PM

14:21:48 PM

39578862

14:11:33 PM

14:34:52 PM

39578859

14:11:48 PM

14:36:12 PM

39578856

14:12:04 PM

14:37:46 PM

 

STEP 8  Re-image the Patched Working Copy

Once verified, the fully patched working copy is captured back into a new, immutable gold image — ready to be distributed as the fleet's next certified baseline:

[oracle@fleet ~]$ rhpctl import image -image GI_23_26_3_GOLD \
  -path /rhp_repo/workingcopies/GI_23_26_wc \
  -imagetype ORACLEGISOFTWARE

[oracle@fleet ~]$ rhpctl query image -image GI_23_26_3_GOLD
Image name: GI_23_26_3_GOLD
Image state: PUBLISHED
Image size: 5700 Megabytes
Image Version: 23.26.3.0.0:23.26.3.0.0
Interim patches installed: 39578856, 39578859, 39578862, 39578865, 39578879
Complete: TRUE

Key Takeaways

•     FPP turns Grid Infrastructure patching from a per-node manual task into a repeatable, image-based workflow.

•     A gold image + working copy model lets you validate a patch once, then roll it out fleet-wide with confidence.

•     Re-capturing a patched working copy as a new gold image keeps the fleet's baseline continuously current.

•     SSH trust, repository health, and OPatch conflict checks are the most common points of failure — validate them early.

 

Munish Kumar Karna — Oracle Certified Professional | RAC · ASM · Data Guard · GoldenGate · OCI


Comments