自动克隆环境

使用本节中的脚本可自动克隆环境。

创建包含类似以下脚本的批处理 (.bat) 或 shell (.sh) 文件以克隆环境。后面的示例脚本可以处理如下活动:

  • 登录到源环境。
  • 使用 Artifact Snapshot(在源环境的上次日常维护期间创建的快照)或源环境中可用的其他快照,将目标环境转换为源环境的克隆。
  • (可选)创建用户及其预定义角色和应用程序角色分配,以与源环境中的这些用户及其分配匹配。
  • (可选)更改日常维护开始时间以与源环境的该时间匹配。
  • 注销。

有关克隆过程的详细信息,请参阅《管理 Oracle Enterprise Performance Management Cloud 迁移》中的“克隆 EPM 云环境 ”。

有关使用 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.