自動執行環境複製

使用本節中的指令碼以自動複製環境。

建立包含類似下列項目之指令碼的批次 (.bat) 或殼層 (.sh) 檔案以複製環境。下列範例指令碼可處理這些活動:

  • 登入來源環境。
  • 使用 Artifact Snapshot (來源環境上次每日維護期間建立的快照) 或來源環境中可用的其他快照,將目標環境轉換為來源環境的翻版。
  • (選擇性) 建立與來源環境使用者相符的使用者及其預先定義的角色指派和應用程式角色指派。
  • (選擇性) 變更每日維護開始時間,以和來源環境的開始時間相符。
  • 登出。

如需有關複製程序的詳細資訊,請參閱管理 Oracle Enterprise Performance Management Cloud 移轉 中的複製 EPM Cloud 環境

請參閱自動執行指令碼以取得使用 Windows 工作排程器排程執行指令碼的相關資訊。

Windows

  1. 建立一個名為 cloneEnvironment.bat 的批次 (.BAT) 檔案,其中包含以下指令碼並儲存在方便的位置,例如 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%
    
  2. 修改 cloneEnvironment.bat 來設定這些參數的值:

    表格 3-5 要在 cloneEnvironment.bat 中設定的參數

    參數 描述
    usersandpredefinedroles 將這個參數的值設定為 true 來複製使用者及其預先定義的角色指派和應用程式角色指派。

    若要複製使用者和角色指派,執行指令碼的使用者必須擁有目標環境的服務管理員識別網域管理員角色。

    snapshotname 複製時,快照在來源環境中應使用的名稱。
    dailymaintenancestarttime 將這個參數的值設定為 true,將複製的環境每日維護開始時間變更為來源環境的每日維護開始時間。將此值設定為 false,以保留複製的環境目前每日維護開始時間。
  3. 建立一個名為 cloneEnvironment.ps1 的 PowerShell 指令碼,其中包含以下指令碼並將其儲存至您儲存 cloneEnvironment.bat 的目錄中,例如,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
  4. 使用以下命令執行 cloneEnvironment.bat
    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

  1. 建立一個名為 cloneEnvironment.sh 的 shell 指令碼,其中包含以下指令碼並將其儲存在方便的位置。
    #!/bin/bash
    
    # Update the following parameters
    # -------------------------------
    epmautomatescript=/home/user1/epmautomate/bin/epmautomate.sh
    javahome=/home/user1/jdk1.8.0_191/
    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
  2. 修改 cloneEnvironment.sh 來設定這些參數的值:

    表格 3-6 要在 cloneEnvironment.sh 中設定的參數

    參數 描述
    epmautomatescript EPM Automate 可執行檔 (epmautomate.sh) 的絕對路徑。
    javahome JAVA_HOME 位置。
    usersandpredefinedroles 將這個參數的值設定為 true 來複製使用者及其預先定義的角色指派和應用程式角色指派。

    若要複製使用者和角色指派,執行指令碼的使用者必須擁有目標環境的服務管理員識別網域管理員角色。

    snapshotname 複製時,快照在來源環境中應使用的名稱。
    dailymaintenancestarttime 將這個參數的值設定為 true,將複製的環境每日維護開始時間變更為來源環境的每日維護開始時間。將此值設定為 false,以保留複製的環境目前每日維護開始時間。
  3. 執行 cloneEnvironment.sh
    ./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.