環境のクローニングの自動化

この項のスクリプトを使用して、環境のクローニングを自動化します。

環境をクローニングする次のようなスクリプトが含まれるバッチ(.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という名前のシェル・スクリプトを作成し、わかりやすい場所に保存します。
    #!/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自動化の実行可能ファイル(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.