現在地

第1回 wsadminで楽々構築 WebSphere Application Server その1


はじめに

WebSphere Application Serverについてのコラムを担当する山道です。主に、OSやミドルウェア(WEB/AP、DB)の基盤部分の設計、構築を担当しています。

本コラムではBlue3で取り扱っているWebSphere Application Server(以下、WAS)について説明しようと思います。
※本コラム執筆時(2015/09)の最新のWASのバージョンは8.5.5となります。

WASは業界でもトップのシェアを誇るアプリケーションサーバーになります。

また、IBMの以下サイトでも設計の方法、小技、構築ガイドなどの情報も豊富に公開されており、初めてアプリケーションサーバーを触るかたでも利用しやすいと思います。

基本的な情報についてはIBMのサイトに数多くあるので、本コラムではあまり触れられることがない箇所について、ご説明できればと思っています。

wsadminで楽々構築 WebSphere Application Server その1

第1回は、コマンドラインでWebSphereのアプリケーションサーバーを構築する手法について触れていきたいと思います。

まずはWASの構築についてです。構築手順は、IBMのサイトで公開されている導入手順が参考になります。

インストール、パッチ適用、プロファイル作成(DeploymentManager、NodeAgent)が完了したら、いよいよアプリケーションサーバーの構築になります。

DeploymentManagerの管理コンソールからアプリケーションサーバーは構築可能なので、少数であれば、管理コンソールからの構築で十分ですが、アプリケーションサーバーの数が多い場合、wsadminを利用したコマンドラインでの作成をしたほうが効率的になります。

wsadminについては、下記のWAS管理ガイドの「6 システム運用」に詳しくまとまっていますので、参考にしていただければと思います。

コマンドラインでの構築方法については、IBM KnowledgeCenter にも記載があります。

KnowledgeCenterからアプリケーションサーバーの構築を抜粋すると、以下手順にて構築できます。(以下、コマンドはjythonを利用しての記載としています。)
※赤字箇所は構築時の情報と合わせて変更が必要となります。

AdminTask.createApplicationServer('node_name',    ['-name',    'server_name', '-templateName', 'template_name'])
AdminConfig.save()
AdminNodeManagement.syncActiveNodes()
print AdminConfig.list('Server')

今回はnodenameをtestNode01、servernameをappserver01、テンプレートはデフォルトのものを利用する形で作成します。
※以下、コマンド入力を行う箇所は太字にしています。

[root@test bin]# /opt/IBM/WebSphere/AppServer/profiles/Dmgr01/bin/wsadmin.sh  -lang  jython -user wasadmin -password xxxxxxxx
WASX7209I: ノード testCellManager01 のプロセス "dmgr" に、SOAP コネクターを使用して接続しました。プロセスのタイプは DeploymentManager です。
WASX7031I: ヘルプを表示するには、"print Help.help()" と入力してください。
wsadmin>
wsadmin>AdminTask.createApplicationServer('testNode01',    ['-name',    'appserver01', '-templateName', 'default'])
'appserver01(cells/testCell01/nodes/testNode01/servers/appserver01|server.xml#Server_xxxxxxxx)'
wsadmin>AdminConfig.save()
''
wsadmin>AdminNodeManagement.syncActiveNodes()
---------------------------------------------------------------
AdminNodeManagement:#   Synchronize the active nodes
Usage: AdminNodeManagement.syncActiveNodes()
Return: If the command is successfully invoked, a value of 1 is returned.
---------------------------------------------------------------
 
testNode01
1
wsadmin>
wsadmin>print AdminConfig.list('Server')
appserver01(cells/testCell01/nodes/testNode01/servers/appserver01|server.xml#Server_xxxxxxxx)
dmgr(cells/testCell01/nodes/testCellManager01/servers/dmgr|server.xml#Server_1)
nodeagent(cells/testCell01/nodes/testNode01/servers/nodeagent|server.xml#Server_xxxxxxxx)
wsadmin>
 

これだけでも十分構築はできますが、管理コンソール画面に合わせる形にもう少し改良したコマンドラインを作ってみます。管理コンソールで新規にアプリケーションサーバーを構築する場合、以下のような画面の流れとなります。
※appserver02を作成する想定の画面になります。

画面上で設定する項目を以下のような名前に置き換えます。

  • 「ノードの選択」 → nodename
  • 「サーバー名」 → servername
  • 「サーバーテンプレートの選択」 → templatename
  • 「固有ポートの生成」 → genuniqueports

ここから置き換えた名前に値を入れる形でコマンドを作成してみます。

nodenameをtestNode01、servernameをappserver02、テンプレートはデフォルト、固有ポートのチェックは入れるという形で作成します。

nodename=" testNode01"
servername=" appserver02"
templatename=" default"
genuniqueports=" true"
 
AdminTask.createApplicationServer(nodename,   '[-name   '+servername+' -templateName '+templatename+' -genUniquePorts '+genuniqueports+' ]')
AdminConfig.save()
AdminNodeManagement.syncActiveNodes()
print   AdminConfig.list('Server')
 

 

wsadmin> wsadmin>nodename="testNode01"
wsadmin>servername="appserver02"
wsadmin>templatename="default"
wsadmin>genuniqueports ="true"
wsadmin>
wsadmin>AdminTask.createApplicationServer(nodename,  '[-name  '+servername+'  -templateName  '+templatename+'  -genUniquePorts '+genuniqueports+' ]')
'appserver02(cells/testCell01/nodes/testNode01/servers/appserver02|server.xml#Server_xxxxxxxx)'
wsadmin>AdminConfig.save()
''
wsadmin>AdminNodeManagement.syncActiveNodes()
---------------------------------------------------------------
AdminNodeManagement:   Synchronize the active nodes
Usage: AdminNodeManagement.syncActiveNodes()
Return: If the command is successfully invoked, a value of 1 is returned.
---------------------------------------------------------------
 
testNode01
1
wsadmin>
wsadmin>print  AdminConfig.list('Server')
appserver01(cells/testCell01/nodes/testNode01/servers/appserver01|server.xml#Server_xxxxxxxx)
appserver02(cells/testCell01/nodes/testNode01/servers/appserver02|server.xml#Server_xxxxxxxx)
dmgr(cells/testCell01/nodes/testCellManager01/servers/dmgr|server.xml#Server_1)
nodeagent(cells/testCell01/nodes/testNode01/servers/nodeagent|server.xml#Server_xxxxxxxx)
wsadmin>
 

これで、KnowledgeCenter に記載されているコマンドラインよりは、少しだけコンソール画面を意識した作りのコマンドになっているかと思います。

今回は1台のアプリケーションサーバーの構築方法についてご説明しました。第2回では、今回の構築コマンドを少し改良し、同時に複数台のアプリケーションサーバーを構築する方法についてご説明したいと思います。