きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

念願のリモートへのデプロイのやり方を把握した(wsInstallApp)

WebSphereにはいくつかAntタスクが用意されてる。
今回は、com.ibm.websphere.ant.tasks.InstallApplicationの使い方の注意点を書いてみる。
これはJavaDoc通りならば、Antタスク名「wsInstllApp」として使います。
Rational Application Developerとかならきっと組み込まれるであろう。
個人的に残念に思ってるのは。com.ibm.ws.runtime.jarにクラスが存在してること。
ちょっとそのJarにクラスパスを通すと、パスを通しすぎてるというか…。

wasHome="ローカルWASのインストール先です。C:/Program Files/IBM/WebSphere/AppServerみたいな"
ear="インストールしたいEARファイルです。ローカルのパスです。"
options="デプロイしたいセル/ノード/サーバの指定をしたりなんか。-cell HostNameCell01 -node HostNameNode01 -server server1"
properties="これは使わなかったので僕からのコメントなし"
profile="これは使わなかったので僕からのコメントなし。事前スクリプトを差し込めるっぽい。"
profileName="ローカルWASのプロファイルです。AppSrv01とか"
conntype="何も考えずにSOAPにしとけばいいよ。"
host="デプロイメントマネージャのいるホスト"
port="デプロイメントマネージャのポート。SOAP_CONNECTOR_ADDRESS。デフォルトなら8879のはず。"
user="あればよろしく、きっと管理セキュリティとかだろう。"
password="あればよろしく、きっと管理セキュリティとかだろう。"
failonerror="true | false"/>
<<<

まず始めの注意は、wasHomeとpofileNameの箇所です。
wasHomeとprofileNameから、wsadminの場所を特定しとるイメージのようです。
リモートのサーバのwasHomeとかを書いてしまうと、そんなパスはローカルに無いからこけます。
気のきいたメッセージはありませんよ。
そして酷く文字化けしたりなんかもします。


次に注意するのは、port周辺です。
serverではなく、dmgrのに向けましょう。
じゃないと、アプリケーション管理サービスが・・・って言われます。
スタンドアロンのWASの場合はひょっとしたら動くのかも知れませんが、
セル構成になってるとdmgrに向けないと動いてくれなかった。


あとは、オプションのところが重要です。次のURLを見ながら与えるオプションを考えるべし。
wsadmin スクリプトを使用する、AdminApp オブジェクトの install、installInteractive、 edit、editInteractive、update、および updateInteractive コマンドのオプション
自分の場合は、更新も試したかったのと、バインディングのマージがうざいケースがあるから、
「-update -update.ignore.old」を含ませました。
ついでに「-appname hoge_ear」も入れた。
何もしなくてもapplication.xmlのdisplaynameを読み取ってくれるはずなんだけど、なんで勝手に適当な値が割り当てられたんだろうか・・・。



com.ibm.websphere.ant.tasks.StartApplicationの場合は、普通にサーバーのポートです。


com.ibm.websphere.ant.tasks.StartServerは試したことが無い。これはちょっとアプリの時と勝手が違うっぽい。JavaDocをしっかり読んでみると、このAntタスクはDMに管理されたサーバーの始動には使えないようだ。んー、自分でスクリプトをジェネレートしてあげるか。スクリプトという点で言うと、-lang jythonで-cが効くってことか? もしそういうことなら、.pyファイルを作るのではなく、-cに渡す文字列を作るってことだろうけど、Jaclの場合はファイル渡してるっぽいからな…。


antによるリモートのサーバの停止・始動についてはまだ実験が必要そうだ。
まあ、sshで繋いでstopServer.shにサーバー名を渡して止める系でも良いのだけどせっかくだから。