Klonen von Umgebungen automatisieren

Verwenden Sie das Skript in diesem Abschnitt, um das Klonen von Umgebungen zu automatisieren.

Um eine Umgebung zu klonen, erstellen Sie eine Batchdatei (.bat) oder eine Shell-Datei (.sh) mit einem ähnlichen Skript wie das folgende. Folgende Beispielskripte umfassen die folgenden Aktivitäten::

  • Melden Sie sich bei der Quellumgebung an.
  • Verwenden Sie den Artifact Snapshot (den während der letzten täglichen Wartung der Quellumgebung erstellten Snapshot) oder einen anderen in der Quellumgebung verfügbaren Snapshot, um die Zielumgebung als Klon der Quelle zu erstellen.
  • Erstellen Sie optional Benutzer mit den zugehörigen vordefinierten und anwendungsbezogenen Rollenzuweisungen, die mit denen in der Quellumgebung übereinstimmen.
  • Ändern Sie optional die Startzeit der täglichen Wartung so, dass sie mit der Startzeit der Quellumgebung übereinstimmt.
  • Melden Sie sich ab.

Ausführliche Informationen zum Klonprozess finden Sie unter "EPM Cloud-Umgebungen klonen " in der Dokumentation Migration für Oracle Enterprise Performance Management Cloud verwalten.

Informationen zum Planen von Skripten mit der Windows-Aufgabenplanung finden Sie unter Skriptausführung automatisieren.

Windows

  1. Erstellen Sie eine Batchdatei (BAT) mit dem Namen cloneEnvironment.bat, die das folgende Skript enthält, und speichern Sie sie an einem geeigneten Speicherort, z.B. 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. Ändern Sie cloneEnvironment.bat, um die Werte für die folgenden Parameter festzulegen:

    Tabelle 3-5 In "cloneEnvironment.bat" festzulegende Parameter:

    Parameter Beschreibung
    usersandpredefinedroles Setzen Sie den Wert dieses Parameters auf true, um Benutzer und die zugehörigen vordefinierten und anwendungsbezogenen Rollenzuweisungen zu klonen.

    Um Benutzer und Rollenzuweisungen zu klonen, muss der Benutzer, der das Skript ausführt, in der Zielumgebung über die Rollen Serviceadministrator und Identitätsdomainadministrator verfügen.

    snapshotname Name des Snapshots in der Quellumgebung, die zum Klonen verwendet werden soll:
    dailymaintenancestarttime Setzen Sie den Wert dieses Parameters auf true, um die Startzeit der täglichen Wartung der geklonten Umgebung in die Startzeit der Quellumgebung zu ändern. Setzen Sie diesen Wert auf false, um die aktuelle Startzeit der täglichen Wartung der geklonten Umgebung beizubehalten.
  3. Erstellen Sie ein PowerShell-Skript mit dem Namen cloneEnvironment.ps1, das das folgende Skript enthält, und speichern Sie es im selben Verzeichnis, in dem Sie cloneEnvironment.bat gespeichert haben, z.B. 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. Führen Sie cloneEnvironment.bat mit dem folgenden Befehl aus:
    cloneEnvironment.bat "SOURCE USERNAME" "SOURCE PASSWORD FILE" "SOURCE URL" "TARGET USERNAME" "TARGET PASSWORD FILE" "TARGET URL"
    
    Beispiel:
    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. Erstellen Sie ein Shell-Skript mit dem Namen cloneEnvironment.sh, das das folgende Skript enthält, und speichern Sie es an einem geeigneten Speicherort.
    #!/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. Ändern Sie cloneEnvironment.sh, um die Werte für die folgenden Parameter festzulegen:

    Tabelle 3-6 In "cloneEnvironment.sh" festzulegende Parameter

    Parameter Beschreibung
    epmautomatescript Der absolute Pfad der ausführbaren Datei für EPM Automate (epmautomate.sh).
    javahome Verzeichnis JAVA_HOME.
    usersandpredefinedroles Setzen Sie den Wert dieses Parameters auf true, um Benutzer und die zugehörigen vordefinierten und anwendungsbezogenen Rollenzuweisungen zu klonen.

    Um Benutzer und Rollenzuweisungen zu klonen, muss der Benutzer, der das Skript ausführt, in der Zielumgebung über die Rollen Serviceadministrator und Identitätsdomainadministrator verfügen.

    snapshotname Name des Snapshots in der Quellumgebung, die zum Klonen verwendet werden soll:
    dailymaintenancestarttime Setzen Sie den Wert dieses Parameters auf true, um die Startzeit der täglichen Wartung der geklonten Umgebung in die Startzeit der Quellumgebung zu ändern. Setzen Sie diesen Wert auf false, um die aktuelle Startzeit der täglichen Wartung der geklonten Umgebung beizubehalten.
  3. Führen Sie cloneEnvironment.sh aus.
    ./cloneEnvironment.sh "SOURCE USERNAME" "SOURCE PASSWORD FILE" "SOURCE URL" "TARGET USERNAME" "TARGET PASSWORD FILE" "TARGET URL"
    
    Beispiel:
    ./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.