WebLogicデプロイ・ツールを使用したワークロードの移行

プロビジョニングされたドメイン上のすべてのリソースとアプリケーションを個別にではなく一度にデプロイします。

WebLogic Deploy Tooling (WLDT)を使用すると、ソース・ドメイン・モデル・ファイルを更新して様々なアプリケーションやリソースを新しいドメインのサーバーにターゲット指定し、Oracle Cloud Infrastructureに移行されたデータベースに一致するようにデータベース接続を更新できます。

開始する前に、次の点に注意してください。

  • Oracle WebLogic Server for Oracle Cloud Infrastructureイメージ用に作成されたドメイン名は、追加された接尾辞_domainを使用したプロビジョニング時に指定した接頭辞(test_domainなど)です。

  • Managed server names follow the pattern <prefix>_server_<index> for example test_server_1, test_server_2, test_server_n where n is the number of nodes provisioned.

  • 管理者サーバーには<prefix>_adminserverという名前が付いています(例: test__adminserver)。

  • WebLogic Enterprise Editionをプロビジョニングした場合、すべての管理対象サーバーを含む< prefix >_ clusterという名前のクラスタがプロビジョニングされます。

  • 先に作成したデータベースに対する接続文字列が必要になります。

  • アプリケーション・ファイルがORACLE_HOMEフォルダ構造の下にある場合、それらのファイルはWebLogicツールのデプロイによって取得されないため、手動で移動する必要があります。または、wlsdeploy/applications/<app.ear>と同様のフォルダ構造のアプリケーション・ファイルをzipファイルにパッケージ化して、SourcePathを同じパスに変更し、WebLogic Deploy Toolingがターゲットのデフォルト・フォルダにデプロイされるようにします。

  1. 適切なWebLogicユーザー(通常はoracle)として、適切にJAVA_HOMEを構成して、ソース・ドメインにWebLogic Deploy Tooling (WLDT)をインストールします。
    # install weblogic-deploy-tooling
    # Check for the latest version at:
    # https://github.com/oracle/weblogic-deploy-tooling/releases/
    WLSDT_VERSION=1.7.0
    echo $JAVA_HOME
    # download and unzip the package
    wget -qO- https://github.com/oracle/weblogic-deploy-tooling/releases/download/weblogic-deploy-tooling-${WLSDT_VERSION}/weblogic-deploy.zip | $JAVA_HOME/bin/jar xv
    # make the scripts executable
    chmod +x weblogic-deploy/bin/*.sh
  2. Discoverソース・ドメイン。

    -domain_typeはデフォルトでWLSに設定されるため、WLSドメインでは省略できます。-domain_type JRFでは、Discoveryコマンドは、JRFドメインの場合、マーケットプレース・イメージで再プロビジョニングされたすべてのJRFコンポーネントをフィルタ処理で除外します。JRFの使用は、すべてのドメインの検出に適したデフォルトです。

    この例では、.yaml.zipおよび.propertiesファイルにsourceを使用しています。任意の有効なファイル名を使用できます。

    # path to the parent of the wlserver folder (for example /u01/app/oracle/middleware/)
    MW_HOME=
    # path to the domain folder (i.e. <domain root>/<domain_name>)
    DOMAIN_HOME=
    
    weblogic-deploy/bin/discoverDomain.sh \
        -oracle_home $MW_HOME \
        -domain_home $DOMAIN_HOME \
        -archive_file source.zip \
        -model_file source.yaml \
        -variable_file source.properties \
        -domain_type JRF
    
    # even if the domain is not JRF, using JRF domain type will only filter out domain libraries. If they don’t exist, this will not affect the output.
  3. ファイルをターゲット環境の管理者サーバーに移動します。
    SOURCE_IP=<IP of the source WLS server>
    ADMIN_SERVER_IP=<IP of the cloud Administrator server>
    scp <source_user>@${SOURCE_IP}:~/source.* opc@${ADMIN_SERVER_IP}:~/
    
    # change ownership of the files from opc to oracle 
    # and move the file to the oracle user home
    ssh opc@${ADMIN_SERVER_IP}
    sudo chown oracle:oracle source.*
    sudo mv source.* /home/oracle/
    # switch to the oracle user
    sudo su – oracle
  4. Oracle Cloud InfrastructureのWLS管理者サーバーに、WebLogicデプロイ・ツールをインストールします。
    # As the oracle user, install weblogic-deploy-tooling
    WLSDT_VERSION=1.7.0
    wget -qO- https://github.com/oracle/weblogic-deploy-tooling/releases/download/weblogic-deploy-tooling-${WLSDT_VERSION}/weblogic-deploy.zip | $JAVA_HOME/bin/jar xv
    
    # make the scripts executable
    chmod +x weblogic-deploy/bin/*.sh
  5. ソース・ドメイン・モデル・ファイルを編集して、ターゲット・ドメイン・トポロジと一致させます。
    • source.yaml:ドメイン、そのトポロジ(サーバー、クラスタなど)、リソースおよびアプリケーション・デプロイメントを記述するモデル・ファイル。

    • source.zip:アプリケーション・ファイルが含まれます。

    • source.properties:移植できない資格証明のプレースホルダを含みます。

    ノート:

    Yamlファイルの編集時には、タブや解析ではなく空白を必ず使用してください。また、YAMLでは、インデントはネストを表しているため、トップレベル・キーを削除する場合は、キーの下にネストされたすべてのものを同じレベルの次のキーまで削除する必要があります。
    1. .yamlファイルを編集して、セクション・リソースとappDeploymentsのみを保持します。
      • domainInfoセクション全体を削除します。

      • topologyセクション全体を削除します。

      • WebLogic Server Enterprise Edition: resourcesの下にネストされた各アプリケーションの場合は、JDBCSystemResourceappDeploymentの順に、クラスタ名が<domain_prefix>_clusterの場合のOracle Cloud Infrastructureでクラスタ名と一致するようにTargetキーを編集します(例: ee_cluster)。

      • WebLogic Server Standard Edition: resourcesの次にJDBCSystemResourceappDeploymentの下にネストされた各アプリケーションに対して、Targetキーを編集して、Oracle Cloud Infrastructure上の管理対象サーバー名のリストと一致させます(このとき、アプリケーションはパターン<domain_prefix>_server_<id>を使用してターゲットとします)。リスト・エントリをカンマで区切り、一重引用符または二重引用符でリストを囲みます。例: 'se_server_0,se_server_1,se_server_3'

    2. 各JDBCDriverParamsキーの下にあるデータ・ソースのurlを編集します。
      URLはパターンに従っている必要があります。
      'jdbc:oracle:thin:@//<hostname>:<port>/<your_pdb_name>.<subdomain_name>'
      hostnameportおよびsubdomain_nameはデータベース接続文字列からのもので、your_pdb_nameはデータベースをホストするPDBの名前です(CDBルート名ではありません)。
      • 単一ノードの接続文字列: <hostname>:<port>/<cdb_root_name>.<db_subnet_domain_name>
      • 複数ノードの接続文字列: <hostname>-scan:<port>/<cdb_root_name>.<db_subnet_domain_name>

      データベースが1つのノードのみで構成される場合はいずれかのフォームを使用しますが、適切な検出を確保し、将来のスケーリングをサポートするために、-scanコンポーネントを含めることをお薦めします。

    3. StagingModeキーがない場合は追加します

      appDeploymentsの下の各アプリケーションで、StagingModeキーがstageに設定されていることを確認するか、存在しない場合は追加してください。この設定により、クラスタの他のターゲット管理対象サーバーまたは管理対象サーバーにファイルが自動的にデプロイされます。この設定がない場合は、各サーバーにファイルを手動でデプロイする必要があります。

    4. source.propertiesファイルを編集して、移行したデータベースまたはデータベースのJDBC接続パスワードを更新します。
  6. WebLogicツールのデプロイupdateDomainスクリプトを実行して、ドメインを更新します。
    # make sure the needed variables are set:
    echo $DOMAIN_HOME
    echo $MW_HOME
    
    # run WebLogic Deploy Tooling updateDomain script in online mode
    weblogic-deploy/bin/updateDomain.sh \
    -oracle_home $MW_HOME \
    -domain_home $DOMAIN_HOME \
    -model_file source.yaml \
    -variable_file source.properties \
    -archive_file source.zip \
    -admin_url t3://$(hostname -i):9071
    
    # domain deployed before 05/19/2020 may need to use port 7001

    この例については、次の点に注意してください。

    • ここでは-domain_typeは更新のみであるため、使用されていません。-domain_type JRFオプション(JRFドメインの場合も)を使用すると、オンライン更新の場合にWLDTの更新の問題が発生します。

    • -admin_urlには、hostname -iコマンドで抽出された管理サーバーのローカルのプライベートIPを持つt 3プロトコルが必要です。パブリックIPを介したHTTPまたはHTTPSが機能しません。

    • このコマンドに-admin_urlを指定することで、ドメインをオンラインで更新できます。すべてのドメインをオンラインで更新できるわけではなく、トポロジが変更されないかぎり(ここではそうではありません)、ほとんどのドメインで動作します。

    • オンラインで更新すると、サーバーを再起動することなくアプリケーションとリソースをデプロイできます。オフライン更新を実行する場合は、-admin_urlオプションを削除し、stopWebLogic.shおよびstartWebLogic.shスクリプトを使用してWebLogicサーバーを停止して再起動します。startWeblogic.sh &!を使用して、バックグラウンドにコマンドを送信したり、コマンドを分離します。そのため、ターミナル・イグジットが残ります。

    • オフラインで更新を実行する場合は、StagingMode=stageフラグを有効にするために、サーバーを2回停止して再起動する必要があります。最初の再起動で構成が更新され、2番目の再起動でStagingModeデプロイメントが有効になります。