前提条件

ハンズオンの全体像

  1. 移行先環境で利用するデータベースのスキーマを作成
  2. 移行先環境となるWebLogic Server for OCIを移行元環境と同一サブネットに作成
  3. 移行元環境より移行ファイルを抽出
  4. 移行ファイルを編集
  5. 移行先環境に移行ファイルを適用

Note: 移行元/移行先のデータベースに関して
本ハンズオンでは、移行元と移行先で同一データベースを利用しますが、異なるスキーマを利用します。実際の移行では、接続先となるデータベースそのものが異なる場合が考えられます。

Note: ツールで移行可能なファイル
本ハンズオンで利用する移行ツールのWebLogic Deploy Toolingでは、アプリケーション/アプリケーションの構成 以外のファイルは移行できません。 そのため、アプリケーションが利用するファイル(例: データベースウォレット)などの移行は手作業で行う必要があります。
本ハンズオンでは、データベースにAutonomous Databaseを利用しているため、データベースウォレットの手動移行が必要になります。

1.移行先環境で利用するデータベースのスキーマを作成

Note: 移行元/移行先のデータベースに関して
この手順では、移行元と移行先で同一データベースのスキーマのみを変更しています。実際の移行では、接続先となるデータベースが異なる場合が考えられます。その場合、接続先のJDBC URLが異なる場合がございますので、ご注意ください

左上のハンバーガーメニューを展開して、「Oracle Database」から「Autonomous Transaction Processing」を選択します。

データベース・アクションをクリックします。

「ユーザー名」にADMIN、「パスワード」にWelcome1234!と入力します。※セッションの関係で、入力の必要がない場合があります。

「SQL」のパネルをクリックします。

以下のSQLをワークシートに貼り付け、F5を押下し全文を実行し、移行先環境が利用するスキーマを作成します。

-- USER SQL
CREATE USER "DEST" IDENTIFIED BY "Welcome1234!";

-- ADD ROLES
GRANT CONNECT TO DEST;
GRANT RESOURCE TO DEST;
ALTER USER DEST DEFAULT ROLE CONNECT,RESOURCE;

-- ENABLE REST
BEGIN
    ORDS.ENABLE_SCHEMA(
        p_enabled => TRUE,
        p_schema => 'DEST',
        p_url_mapping_type => 'BASE_PATH',
        p_url_mapping_pattern => 'dest',
        p_auto_rest_auth=> TRUE
    );
    commit;
END;
/

-- QUOTA
ALTER USER DEST QUOTA UNLIMITED ON DATA;

画面右上、「ADMIN」をクリックし、「サインアウト」をクリック

「サインイン」をクリックし、「ユーザー名」にDESTと入力し、「次」をクリックします。
その後、「パスワード」にWelcome1234!と入力し、DESTユーザーでログインします。

「SQL」のパネルをクリックします。

 
以下のSQLをワークシートに貼り付け、F5を押下し全文を実行。

CREATE TABLE "DEST"."TODO_HEAD" 
    (	
        "RID" NUMBER(10,0), 
        "STATUS" NUMBER(2,0), 
        "TITLE" VARCHAR2(100 BYTE), 
        "MEMO" VARCHAR2(1000 BYTE), 
        "IMPORTANCE" NUMBER(2,0), 
        "INCHARGE" NUMBER(10,0), 
        "CREATE_DATE" DATE, 
        "MODIFY_DATE" DATE
    );

INSERT INTO "DEST"."TODO_HEAD"
    (
        "RID", 
        "STATUS", 
        "TITLE", 
        "MEMO", 
        "IMPORTANCE", 
        "INCHARGE", 
        "CREATE_DATE", 
        "MODIFY_DATE"
    ) VALUES (
        0, 
        0,
        'TODO TITLE',
        'TODO MEMO',
        0,
        1000,
        sysdate,
        sysdate
    );

2.移行先環境となるWebLogic Server for OCIを移行元環境と同一サブネットに作成

2.1. マーケットプレイスにてスタックを起動する

左上のハンバーガーメニューを展開して、「マーケットプレイス」から「すべてのアプリケーション」を選択します。

検索欄に「WebLogic Server Enterprise Edition UCM」と入力し、先頭に出てくるパネルをクリックします。

チェックボックスにチェックを入れ、「スタックの起動」をクリックします。

2.2. WebLogic Server for OCIをプロビジョニングする

Note: 特に記載のない部分に関してはデフォルトの値で構いません

名前に「handson_dest」と入力し、「次」をクリックします。

Resource Name Prefix に「dest」と入力します。

SSH Public Keyでは、事前準備で作成したSSH Keyを選択します。

Validated Secret for WebLogic Server Admin Passwordでは、事前準備で作成したSecret(wlsadmin)を選択します。

Existing Networkは「base-wls_handson」を選択し、Validated Existing Networkに「YES」と入力します。

Existing Subnet for WebLogic Serverは「base-wl-subnet」を選択します。

Existing Subnet for Bastion Hostは「base-bsubnet」を選択します。

Existing Subnet for Load Balancerは「base-lbpubst1」を選択します。

「次」をクリックし、「作成」をクリックします。

3.移行ファイルの抽出

WebLogic Deploy Tooling (WDT)を利用して、アプリケーションなどの移行ファイルを移行元環境より抽出します。

3.1. WDT をインストールする

コンソール右上、OCI Cloud ShellのアイコンをクリックしてOCI Cloud Shellを開きます。

WDTをダウンロードします。

wget https://github.com/oracle/weblogic-deploy-tooling/releases/download/release-2.3.2/weblogic-deploy.zip

WDTとSSH KeyをSCPで転送します。

scp -i <SSH Keyのパス> \
-o ProxyCommand='ssh -i <SSH Keyのパス> \
-W %h:%p opc@<base-bastion-instanceのパブリックIP>' \
~/weblogic-deploy.zip <SSH Key> opc@<base-wls-0のプライベートIP>:~/

以下コマンドを実行し、移行元のWebLogicインスタンス(base-wls-0)にSSHログインします。

ssh -i <SSH Keyのパス> \
-o ProxyCommand='ssh -i <SSH Keyのパス> \
-W %h:%p opc@<base-bastion-instanceのパブリックIP>' \
opc@<base-wls-0のプライベートIP>

rootユーザーにスイッチします。

sudo su - 

WDTとSSH Keyをoracleユーザーが利用できるようにします。

mv /home/opc/weblogic-deploy.zip /home/oracle/
mv <SSH Key> /home/oracle/

chown oracle:oracle /home/oracle/weblogic-deploy.zip
chown oracle:oracle <SSH Key>

oracleユーザーにスイッチします。

sudo su - oracle

WDTをunzipします。

unzip weblogic-deploy.zip

WDTスクリプトの権限変更を行います。

chmod +x weblogic-deploy/bin/*.sh

3.2. 移行ファイルを抽出する

以下のdiscoverDomainコマンドを利用して、移行ファイルの抽出を行います。

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 \

4.移行ファイルの編集

Cloud Shell上のVimなど任意のテキストエディタで、移行ファイル(WDTモデルファイル)を編集します。

4.1. source.propertiesファイルの編集

source.propertiesは、モデルファイル(source.yaml)で利用する変数をまとめたファイルです。

JDBC.Handson.PasswordEncryptedWelcome1234!
JDBC.Handson.user.ValueDESTと入力します。

JDBC.Handson.PasswordEncrypted=Welcome1234!
JDBC.Handson.user.Value=DEST

4.2. source.yamlファイルの編集

source.yamlは、WebLogicドメインをモデル化したファイルです。

domainInfoフィールドとtopologyフィールドをすべて削除します。

resoucesフィールドとappDeploymentsフィールドのみが残ります。

Handsonフィールド下のTargetbase_clusterdest_clusterと変更します。

resources:
    JDBCSystemResource:
        Handson:
            Target: dest_cluster #変更

TodoApp-0.0.1-SNAPSHOTフィールド下のTargetbase_clusterdest_clusterと変更します。

appDeployments:
    Application:
        TodoApp-0.0.1-SNAPSHOT:
            SourcePath: wlsdeploy/applications/TodoApp-0.0.1-SNAPSHOT.war
            ModuleType: war
            Target: dest_cluster #変更

StagingMode: stageappDeployments内のTarget: dest_clusterの下に追加します。

appDeployments:
    Application:
        TodoApp-0.0.1-SNAPSHOT:
            SourcePath: wlsdeploy/applications/TodoApp-0.0.1-SNAPSHOT.war
            ModuleType: war
            Target: dest_cluster
            StagingMode: stage #追加

4.3. WDTモデルファイルを移行先管理サーバに転送する

WDT、移行ファイル、Walletを移行先のWebLogic Server for OCIのインスタンスにscpで転送します。

scp -i <SSH Key> weblogic-deploy.zip source.* \
Wallet_handsonDB.zip opc@<移行先インスタンスのPrivate IP>:~/

移行先のWebLogic Server for OCIのインスタンスにSSH接続します。

ssh -i [SSH Keyの名前] opc@[移行先インスタンスのPrivate IP]

WDT、移行ファイル、Walletの所有者を変更します。

sudo chown oracle:oracle *

ファイルすべてを移動します。

sudo mv * /home/oracle/

oracleユーザにスイッチします。

sudo su - oracle

Walletをunzipします。

unzip -d handsondb Wallet_handsonDB.zip

WDTをunzipします。

unzip weblogic-deploy.zip

WDTの権限変更を行います。

chmod +x weblogic-deploy/bin/*.sh

5.移行ファイルの適用

移行ファイルを移行先環境に適用し、移行が正常に行われることを確認します。

5.1. 移行ファイルを移行先環境に適用する

以下のコマンドを実行し、WebLogic Server for OCIにデプロイを行います。

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

コマンドを実行すると、ユーザー名とパスワードを聞かれます。
それぞれweblogic, wilcome1と入力してください。

5.2. アプリケーションの動作確認を行う

<Load Balancer IP>を移行先のものに置き換えて、アプリケーションにアクセスします。

https://<Load Balancer IP>/todo    

更新日時: