0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

WebLogic Deploy Toolingで既存のWebLogic Serverからアプリケーションを抽出

Last updated at Posted at 2023-02-10

はじめに

WebLogicにデプロイしているアプリケーションを抽出するための便利なツールとして、WebLogic Deploy Toolingというものがあります。
このツールを使うことで、WebLogic上のアプリケーションをメタデータとして抽出し、以下のような用途に利用ができます。

  • 別のWebLogic環境に移行
  • 2つのWebLogic環境を同期
  • WebLogicアプリケーションのコンテナ化

この記事では、アプリケーションの抽出を実際に行ってみたいと思います。

前提

今回はWebLogicをOCI上ですぐにプロビジョニングして利用できるWebLogic Server for OCIを利用してみます。
OSとWebLogicのバージョンはいくつか選択が可能ですが、実際に動かしてみる環境はそれぞれ以下の通りになります。

  • Oracle Linux 7.9
  • WebLogic Server 14.1.1.0
  • Autonomous Database(ATP)

基本的な流れ

  1. WebLogic Deploy Tooling(WDT) を抽出元のドメインがあるサーバにインストール
  2. discoverDomain コマンドの実行

これだけです。

WDTのインストール

OSユーザのスイッチ

WebLogic Server for OCI では、oracleユーザでWebLogicの操作を行います。

sudo su - oracle

環境変数の確認

まずは環境変数JAVA_HOMEが設定されているかを確認します。

echo $JAVA_HOME

設定されていなければ、適切なJDKのパスを設定してください。

WDTの最新バージョンを確認

次に、公式のGithub(https://github.com/oracle/weblogic-deploy-tooling/releases/) で、WDTの最新バージョンを確認します。
image.png
2023年2月現在では2.4.4が最新のようです。

WDTのダウンロードとunzip

<バージョン>の部分を確認したバージョン(2.4.4であればrelease-2.4.4/weblogicのように)に置き換えて、以下コマンドを実行します。

wget -qO- \
https://github.com/oracle/weblogic-deploy-tooling/releases/download/release-<バージョン>/weblogic-deploy.zip | \
$JAVA_HOME/bin/jar xv

スクリプトの権限変更

WDTのスクリプトを実行可能な状態にします

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

discoverDomainコマンドを実行してアプリケーションを抽出

コマンドの実行

コマンドを実行する前に、コマンド内の必要箇所を書き換える必要があります。

weblogic-deploy/bin/discoverDomain.sh \
 -oracle_home <ORACLE_HOME> \
 -domain_home <DOMAIN_HOME> \
 -archive_file source.zip \
 -model_file source.yaml \
 -variable_file source.properties \
 -domain_type <WLS/JRF>
  • <ORACLE_HOME>と`にはそれぞれのパスを設定
  • <WLS/JRF>はドメインのタイプを指定
  • -archive_fileオプション -> アプリケーション(WAR/EAR)がまとまったzipファイルの出力先を指定可能
  • -model_fileオプション -> WebLogic構成のメタデータファイルの出力先を指定可能
  • -variable_fileオプション -> 変数群をまとめたファイルの出力先を指定可能

今回は一例としてこのような形でコマンドを実行してみます。
***_domainの部分には実際にはドメイン名が入ります。

weblogic-deploy/bin/discoverDomain.sh \
 -oracle_home /u01/app/oracle/middleware/ \
 -domain_home /u01/data/domains/***_domain/\
 -archive_file source.zip \
 -model_file source.yaml \
 -variable_file source.properties \
 -domain_type WLS

実際に実行した場合はこのようなログが出て、discoverDomain.sh completed successfully (exit code = 0)と出れば成功です。

JDK version is 1.8.0_331-b09
JAVA_HOME = /u01/jdk
WLST_EXT_CLASSPATH = /home/oracle/weblogic-deploy/lib/weblogic-deploy-core.jar
CLASSPATH = /home/oracle/weblogic-deploy/lib/weblogic-deploy-core.jar
WLST_PROPERTIES = -Dcom.oracle.cie.script.throwException=true -Djava.util.logging.config.class=oracle.weblogic.deploy.logging.WLSDeployLoggingConfig 
/u01/app/oracle/middleware//oracle_common/common/bin/wlst.sh /home/oracle/weblogic-deploy/lib/python/discover.py -oracle_home /u01/app/oracle/middleware/ -domain_home /u01/data/domains/***_domain/ -archive_file source.zip -model_file source.yaml -variable_file source.properties -domain_type WLS

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

--- 中略 ---

discoverDomain.sh completed successfully (exit code = 0)

成果物を確認

3つの成果物(ファイル)が出来上がってるはずです。

$ ll source.*
-rw-r-----. 1 oracle oracle    143 Feb 10 05:39 source.properties
-rw-r-----. 1 oracle oracle   5378 Feb 10 05:39 source.yaml
-rw-r-----. 1 oracle oracle 430178 Feb 10 05:39 source.zip

source.yamlが構成のメタデータです。
DB接続の設定や、source.zip内のアプリケーションのパスがきちんと記載されていることが確認できます。

$ cat source.yaml 
domainInfo:
    AdminUserName: '@@PROP:AdminUserName@@'
    AdminPassword: '@@PROP:AdminPassword@@'
topology:
--- 中略 ---    
resources:
    JDBCSystemResource:
        ***DB:
            Target: ***
            JdbcResource:
                DatasourceType: GENERIC
                JDBCConnectionPoolParams:
                    StatementCacheSize: 10
                    InitialCapacity: 1
                    StatementCacheType: LRU
                    MaxCapacity: 15
                    TestTableName: SQL ISVALID
                    MinCapacity: 1
                JDBCDataSourceParams:
                    JNDIName: ***DB
                JDBCDriverParams:
                    DriverName: oracle.jdbc.OracleDriver
                    PasswordEncrypted: '@@PROP:JDBC.Handson-DB.PasswordEncrypted@@'
                    URL: jdbc:oracle:thin:@***db_tp
                    Properties:
                        oracle.net.tns_admin:
                            Value: /home/oracle/***db
                        user:
                            Value: '@@PROP:JDBC.***DB.user.Value@@'
                        oracle.net.wallet_location:
                            Value: /home/oracle/***db
                        oracle.jdbc.fanEnabled:
                            Value: 'false'
                        oracle.net.ssl_version:
                            Value: '1.2'
                        oracle.net.ssl_server_dn_match:
                            Value: 'true'
appDeployments:
    Application:
        ***App:
            SourcePath: wlsdeploy/applications/***App.war
            ModuleType: war
            Target: ***_adminserver

まとめ

今回は、WDTを使って簡単にアプリケーションやWebLogicの構成を抽出できることが分かりました。
次は、この抽出したファイル群を使って、WebLogicアプリケーションのコンテナ化をやってみたいと思います。

参考資料

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?