Automate the Cloning of Environments
Use the script in this section to automate the cloning of environments.
Create a batch (.bat) or shell (.sh) file containing script similar to the following to clone an environment. The following sample scripts handle these activities:
- Sign in to the source environment.
- Use
Artifact Snapshot(the snapshot created during the last daily maintenance of the source environment) or another snapshot available in the source environment to convert the target environment as a clone of the source. - Optionally, create users and their predefined and application role assignments matching those in the source environment.
- Optionally, change the daily maintenance start time to match that of the source environment.
- Sign out.
For detailed information on cloning process, see "Cloning Cloud EPM Environments " in Administering Migration.
See Automating Script Execution for information on scheduling the script using Windows Task Scheduler.
Windows
- Create a batch (.BAT) file named
cloneEnvironment.batcontaining the following script and save it in a convenient location, for example,C:\automate_scripts.@echo off set paramRequiredMessage=Syntax: cloneEnvironment.bat "SOURCE USERNAME" "SOURCE PASSWORD FILE" "SOURCE URL" "TARGET USERNAME" "TARGET PASSWORD FILE" "TARGET URL" set usersandpredefinedroles="false" set snapshotname="Artifact Snapshot" set dailymaintenancestarttime="true" set dirpath=%~dp0 cd %dirpath:~0,-1% if "%~1" == "" ( echo Source User Name is missing. echo %paramRequiredMessage% exit /b 1 ) if "%~2" == "" ( echo Source Password File is missing. echo %paramRequiredMessage% exit /b 1 ) if "%~3" == "" ( echo Source URL is missing. echo %paramRequiredMessage% exit /b 1 ) if "%~4" == "" ( echo Target User Name is missing. echo %paramRequiredMessage% exit /b 1 ) if "%~5" == "" ( echo Target Password File is missing. echo %paramRequiredMessage% exit /b 1 ) if "%~6" == "" ( echo Target URL is missing. echo %paramRequiredMessage% exit /b 1 ) PowerShell.exe -File cloneEnvironment.ps1 %~1 %~2 %~3 %~4 %~5 %~6 %usersandpredefinedroles% %snapshotname% %dailymaintenancestarttime% - Modify
cloneEnvironment.batto set the values for these parameters:Table 3-5 Parameters to set in cloneEnvironment.bat
Parameter Description usersandpredefinedrolesSet the value of this parameter to trueto clone users and their predefined and application role assignments.To clone users and role assignments, the user running the script must have the Service Administrator role and the Identity Domain Administrator in the target environment.
snapshotnameName of the snapshot in the source environment that should be used for cloning. dailymaintenancestarttimeSet the value of this parameter to trueto change the daily maintenance start time of the cloned environment to that of the source environment. Set this value tofalseto retain the current daily maintenance start time of the cloned environment. - Create a PowerShell script named
cloneEnvironment.ps1containing the following script and save it in the directory where you savedcloneEnvironment.bat, for example,C:\automate_scripts.# Clone Environment script $source_username=$args[0] $source_password=$args[1] $source_url=$args[2] $target_username=$args[3] $target_password=$args[4] $target_url=$args[5] $usersandpredefinedroles=$args[6] $snapshotname=$args[7] $dailymaintenancestarttime=$args[8] epmautomate.bat login "${source_username}" "${source_password}" "${source_url}" epmautomate.bat cloneEnvironment "${target_username}" "${target_password}" "${target_url}" UsersAndPreDefinedRoles="${usersandpredefinedroles}" SnapshotName="${snapshotname}" DailyMaintenanceStartTime="${dailymaintenancestarttime}" epmautomate.bat logout - Run
cloneEnvironment.batusing this command:
For example:cloneEnvironment.bat "SOURCE USERNAME" "SOURCE PASSWORD FILE" "SOURCE URL" "TARGET USERNAME" "TARGET PASSWORD FILE" "TARGET URL"cloneEnvironment.bat jdoe@example.com C:\mySecuredir\example_pwd.epw https://source_example.oraclecloud.com jdoe@example.com C:\mySecuredir\example_pwd2.epw https://target_example.oraclecloud.com.
Linux
- Create a shell script named
cloneEnvironment.shcontaining the following script and save it in a convenient location.#!/bin/bash # Update the following parameters # ------------------------------- epmautomatescript=/home/user1/epmautomate/bin/epmautomate.sh javahome=/home/user1/jdk_17.0.12/ usersandpredefinedroles="false" snapshotname="Artifact Snapshot" dailymaintenancestarttime="true" # ------------------------------- source_username="$1" source_password="$2" source_url="$3" target_username="$4" target_password="$5" target_url="$6" export JAVA_HOME=${javahome} if [ "$#" -ne 6 ]; then echo "Usage: ./cloneEnvironment.sh <SOURCE USERNAME> <SOURCE PASSWORD FILE> <SOURCE URL> <TARGET USERNAME> <TARGET PASSWORD FILE> <TARGET URL>" exit 1 fi ${epmautomatescript} login "${source_username}" "${source_password}" "${source_url}" ${epmautomatescript} cloneEnvironment "${target_username}" "${target_password}" "${target_url}" UsersAndPreDefinedRoles="${usersandpredefinedroles}" SnapshotName="${snapshotname}" DailyMaintenanceStartTime="${dailymaintenancestarttime}" ${epmautomatescript} logout - Modify
cloneEnvironment.shto set the values for these parameters:Table 3-6 Parameters to set in cloneEnvironment.sh
Parameter Description epmautomatescriptThe absolute path of EPM Automate executable ( epmautomate.sh).javahomeJAVA_HOME location. usersandpredefinedrolesSet the value of this parameter to trueto clone users and their predefined and application role assignments.To clone users and role assignments, the user running the script must have the Service Administrator role and the Identity Domain Administrator in the target environment.
snapshotnameName of the snapshot in the source environment that should be used for cloning. dailymaintenancestarttimeSet the value of this parameter to trueto change the daily maintenance start time of the cloned environment to that of the source environment. Set this value tofalseto retain the current daily maintenance start time of the cloned environment. - Run
cloneEnvironment.sh.
For example:./cloneEnvironment.sh "SOURCE USERNAME" "SOURCE PASSWORD FILE" "SOURCE URL" "TARGET USERNAME" "TARGET PASSWORD FILE" "TARGET URL"./cloneEnvironment.sh jdoe@example.com ./home/secure/example_pwd.epw https://source_example.oraclecloud.com jdoe@example.com ./home/secure/example_pwd.epw2 https://target_example.oraclecloud.com.