第5回 wsadminコマンドでアプリケーションのデプロイ


第5回では前回までに作成したアプリケーションサーバーに対して、wsadminコマンドを利用してアプリケーションをデプロイしてみたいと思います。

今回デプロイするアプリケーションとしてはWAS導入時に入るサンプルアプリケーションの「DefaultApplication.ear」ファイルを利用したいと思います。アプリケーションサーバーとしては「appserver01」に対してデプロイします。

通常、「DefaultApplication.ear」ファイルは、「WASインストールディレクトリ/installableApps/DefaultApplication.ear」に格納されています。

以下、「/opt/IBM/WebSphere/Appserver/installableApps/DefaultApplication.ear」にファイルがある想定で進めていきますが、サンプルアプリケーションの中身は以下のような構成となっています。

DefaultApplication.ear
     |----DefaultWebApplication.war
     |     |----WEB-INF
     |          |----web.xml
     |----Increment.jar
           |---- META-INF
                |----ejb-jar.xml

※ 他にもファイルは含まれていますが、上記の記載では省略しています。

WEBモジュールとして、「DefaultWebApplication.war」、EJBモジュールとして「Increment.jar」をデプロイ、以下のパラメーターを利用してwsadminを利用してデプロイします。

cell            ⇒  デプロイ対象のセル名。今回の場合は、testCell01
node          ⇒  デプロイ対象のノード名。今回の場合は、testNode01
server        ⇒  デプロイ対象のサーバー名。今回の場合は、「appserer01」
appfile        ⇒ 「DefaultApplication.ear」の格納先
appname    ⇒  登録するアプリケーション名
webmodule ⇒  web.xmlのdisplay-nameで定義されている名称
weburi        ⇒  webモジュールのxmlファイルの格納先
ejbmodule   ⇒  ejb-jar.xmlのdisplay-nameで定義されている名称
ejburi          ⇒  ejbモジュールのxmlファイルの格納先

※ その他にも設定できる項目は多数ありますので、前述したIBMのページのやり方も参照していただければと思います。

cell="testCell01"
node="testNode01"
server="appserver01"
appfile="/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear"
appname="DefaultApplication"
webmodule=str("Default Web Application")
weburi="DefaultWebApplication.war,WEB-INF/web.xml"
ejbmodule=str("Increment EJB module")
ejburi="Increment.jar,META-INF/ejb-jar.xml"

AdminApp.install(appfile, '[ -appname '+appname+' -MapModulesToServers [[ "'+ejbmodule+'" '+ejburi+' WebSphere:cell='+cell+',node='+node+',server='+server+' ][ "'+webmodule+'" '+weburi+' WebSphere:cell='+cell+',node='+node+',server='+server+' ]]]' )

AdminConfig.save()

print AdminApp.list()



wsadmin>cell="testCell01"
wsadmin>node="testNode01"
wsadmin>server="appserver01"
wsadmin>
wsadmin>appfile="/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear"
wsadmin>appname="DefaultApplication"
wsadmin>
wsadmin>webmodule=str("Default Web Application")
wsadmin>weburi="DefaultWebApplication.war,WEB-INF/web.xml"
wsadmin>
wsadmin>ejbmodule=str("Increment EJB module")
wsadmin>ejburi="Increment.jar,META-INF/ejb-jar.xml"
wsadmin>
wsadmin>AdminApp.install(appfile, '[ -appname '+appname+' -MapModulesToServers [[ "'+ejbmodule+'" '+ejburi+' WebSphere:cell='+cell+',node='+node+',server='+server+' ][ "'+webmodule+'" '+weburi+' WebSphere:cell='+cell+',node='+node+',server='+server+' ]]]' )
WASX7327I: was.policy ファイルの内容:
// WebSphere Application Server Security Policy for the Default Application

// Required for Snoop Servlet's call to get User Name from getUserPrincipal()
grant codeBase "file:DefaultWebApplication.war" {
permission java.security.SecurityPermission "printIdentity";
};

ADMA5016I: DefaultApplication のインストールが開始されました。
ADMA5058I: アプリケーションとモジュールのバージョンが、デプロイメント・ターゲッ トのバージョンに対して検証されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5081I: クライアント・モジュールのブートストラップ・アドレスが WebSphere Application Server リポジトリーの中に構成されます。
ADMA5053I: インストール済みオプション・パッケージのライブラリー参照が作成されま す。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5001I: アプリケーション・バイナリーは /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/Script15026b2384c/workspace/cells/testCell01/applications/DefaultApplication.ear/DefaultApplication.ear に保存されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
SECJ0400I: アプリケーション DefaultApplication が appContextIDForSecurity 情報で正常に更新されました。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5113I: アクティベーション・プランが正常に作成されました。
ADMA5011I: アプリケーション DefaultApplication の一時ディレクトリーのクリーンア ップが完了しました。
ADMA5013I: アプリケーション DefaultApplication は正常にインストールされました。
''
wsadmin>
wsadmin>AdminConfig.save()
''
wsadmin>print AdminApp.list()
DefaultApplication
wsadmin>

これでアプリケーションのデプロイができました。
また、既にデプロイ済みのアプリケーションを更新する場合は、以下にて対応可能です。

appfile="/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear"
appname="DefaultApplication"
AdminApp.update(appname,'app','[-operation update -contents '+appfile+']')



wsadmin>appfile="/opt/IBM/WebSphere/AppServer/installableApps/DefaultApplication.ear"
wsadmin>appname="DefaultApplication"
wsadmin>
wsadmin>AdminApp.update(appname,'app','[-operation update -contents '+appfile+']')
WASX7327I: was.policy ファイルの内容:
// WebSphere Application Server Security Policy for the Default Application

// Required for Snoop Servlet's call to get User Name from getUserPrincipal()
grant codeBase "file:DefaultWebApplication.war" {
permission java.security.SecurityPermission "printIdentity";
};
ADMA5017I: DefaultApplication のアンインストールが開始されました。
ADMA5104I: WebSphere:cell=testCell01,node=testNode01 のサーバー索引エントリーは 正常に更新されました。
ADMA5102I: DefaultApplication の構成データが構成リポジトリーから正常に削除されました。
ADMA5011I: アプリケーション DefaultApplication の一時ディレクトリーのクリーンアップが完了しました。
ADMA5106I: アプリケーション DefaultApplication は正常にアンインストールされました。
ADMA5016I: DefaultApplication のインストールが開始されました。
ADMA5058I: アプリケーションとモジュールのバージョンが、デプロイメント・ターゲッ トのバージョンに対して検証されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5081I: クライアント・モジュールのブートストラップ・アドレスが WebSphere Application Server リポジトリーの中に構成されます。
ADMA5053I: インストール済みオプション・パッケージのライブラリー参照が作成されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5001I: アプリケーション・バイナリーは /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/wstemp/Script15026d98342/workspace/cells/testCell01/applications/DefaultApplication.ear/DefaultApplication.ear に保存されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
SECJ0400I: アプリケーション DefaultApplication が appContextIDForSecurity 情報で正常に更新されました。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5005I: アプリケーション DefaultApplication が WebSphere Application Server リポジトリーに構成されます。
ADMA5113I: アクティベーション・プランが正常に作成されました。
ADMA5011I: アプリケーション DefaultApplication の一時ディレクトリーのクリーンア ップが完了しました。
ADMA5013I: アプリケーション DefaultApplication は正常にインストールされました。
''
wsadmin>
wsadmin>AdminConfig.save()
''
wsadmin>

以上でアプリケーションのデプロイおよび、アプリケーションの更新作業ができました。

wsadminでのデプロイすることで、同じようなシステムやサーバーにアプリケーションをデプロイするときに効率化できるかと思います。
また、初期のデプロイは管理コンソールから実施し、細かい設定までを決め、以降の更新の際、wsadminで実施するという方法もとれますので、場合によって使い分けするなどを検討していただければと思います。

アプリケーションのデプロイ全般については、以下のIBMのサイトについても記載がありますので、こちらも合わせて参照していただければと思います。

第6回ではいままでのwsadminとは少し変わって、WebSphereを導入する際のディスク容量について触れたいと思います。



第5回 wsadminコマンドでアプリケーションのデプロイ