WAS ND v9 Traditional をコマンドラインで入れてみた ～ その２

# はじめに

[前回](https://qiita.com/shimauma999/items/5b6a90e908778082b08e)は、WAS ND 関連 S/W の導入の流れの中で、 下記 1～5. までを行いました。
今回は、WAS ND での 6. 管理プロファイル作成 ～ 7. カスタムプロファイルの作成までを行います。

1. メディアの準備
2. ファイルシステムの作成
3. IBM Installation Manager (IIM) の導入
4. 各種 S/W の導入
5. 各種 S/W の Fixpack 適用
6. 管理プロファイルの作成 (dmgr 用)
7. カスタムプロファイルの作成 (na, AP server 用)
8. Web サーバーの定義
9. AP Server の作成

# 管理プロファイルの作成 (dmgr 用)

WAS を管理する Deployment Manager (dmgr) の実体は Java のプロセスです。
それを作成するために、WAS の "管理プロファイル" を作成します。
なお、 この作業は １号機のみの作業です（ dmgr は１つです　）

プロファイルを作成する上で、以下のリンク先が参考になります。
[WAS 小ワザ集 第8回：GUIが使用できない環境でWASのプロファイルを作成する方法](https://www.ibm.com/developerworks/jp/websphere/library/was/was_tips/8.html)

プロファイル作成の際、以下の情報が必要となります。

|パラメータ|値|備考|
|:--|:--|:--|
|ホスト名|was9a|dmgr 導入先ホスト名|
|プロファイル名|Dmgr01||
|プロファイルテンプレートパス|/usr/IBM/WebSphere/AppServer/profileTemplates/management||
|プロファイルパス|/usr/IBM/WebSphere/AppServer/profiles/プロファイル名||
|セル名|was9aCell01|dmgr 管理対象範囲名|
|ノード名|was9aCellManager01|dmgr 用のノード名|
|管理ユーザー|wasadmin|管理コンソールログインやWAS 停止の際に必要なユーザー|
|管理パスワード|wasadmin|管理ユーザーのパスワード（導入時）|

セルは、dmgr の管理範囲を表す概念で、 WAS の各種定義は Cell 定義の中（配下）に作成されます。
管理ユーザー・パスワードは 「管理セキュリティ」を有効にする場合に必要です。
管理セキュリティは、管理コンソールへのログイン検査の強化（ユーザーID、パスワード）や
WAS 停止の際にも必要になります。 また、管理セキュリティを有効にすると、WAS のコンポーネント間通信も暗号化されます。本番環境であれば有効にしておくほうが良いでしょう。
なお、各種ホスト名の名前解決は出来ているものとします。(/etc/hosts等)

プロファイルの作成自体は、 WAS に付属の  manageprofiles.sh スクリプトで実行します。
今回利用する書式は以下の通りです。

```shell
./manageprofiles.sh
 -create
 -isDefault
 -templatePath プロファイルテンプレートパス
 -serverType DEPLOYMENT_MANAGER
 -profileName プロファイル名
 -profilePath プロファイルパス
 -hostname dmgrホスト名
 -cellName Cell名
 -nodeName dmgrノード名
 -enableAdminSecurity true
 -adminUserName 管理ユーザー名
 -adminPassword 管理パスワード
 -validatePorts ポートの検証を行うかどうか
```

`-isDefault` はデフォルトのプロファイルにする際に指定します。特に要件がなければ dmgr プロファイルを指定しておけば良いです。
`-serverType` は DEPLOYMENT_MANAGER 固定です（dmgr 作成の場合）
`-enableAdminSecurity` は管理セキュリティの有効化有無です
`-validatePorts` は、各種 TCP/IP 通信の際に利用するポートが重複していないかを確認します。

実際のコマンド実行は以下のとおりです。（実際には１行で指定しています ("\"なしで)）

```shell
cd /usr/IBM/WebSphere/AppServer/bin
./manageprofiles.sh -create \
 -isDefault \
 -templatePath /usr/IBM/WebSphere/AppServer/profileTemplates/management \
 -serverType DEPLOYMENT_MANAGER \
 -profileName Dmgr01 \
 -profilePath /usr/IBM/WebSphere/AppServer/profiles/Dmgr01 \
 -hostname was9a \
 -cellName was9aCell01 \
 -nodeName was9aCellManager01 \
 -enableAdminSecurity true \
 -adminUserName wasadmin \
 -adminPassword wasadmin \
 -validatePorts true

INSTCONFSUCCESS: 成功: プロファイル Dmgr01 が存在します。 
このプロファイルに関する詳細については、/usr/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/AboutThisProfile.txt を参照してください。

```

次に、実際に dmgr を起動して見ます。

```shell
# ps -ef | grep dmgr
# cd /usr/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
# ./startManager.sh

ADMU0116I: ツール情報は次のファイルに記録されています:
           /usr/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/dmgr/startServer.log
ADMU0128I: Dmgr01 プロファイルを使用してツールを開始しています
ADMU3100I: サーバーの構成を読み取ります: dmgr
ADMU3200I: サーバーが起動しました。 開始処理中です。
ADMU3000I: サーバー dmgr は e-business に対してオープンな状態です。プロセス ID は 12452052 です。

```

起動中にエラー等があった場合は、 上記標準出力中の `startServer.log` または 同じディレクトリにある `SystemOut.log` を見てエラーを確認します。

起動後、以下の URL にアクセスすると、 （SSL の警告が出た後） 管理コンソールにアクセスできます。
`https://dmgrのIPアドレス:9043/ibm/console`

![DmgrLogin.png](https://qiita-image-store.s3.amazonaws.com/0/310495/d6447171-bac3-47de-a7fd-5ab437c0b4da.png)

管理ユーザー名、管理パスワードを入力してログインすると、コンソールトップ画面が表示されます。

![ConsoleTop.png](https://qiita-image-store.s3.amazonaws.com/0/310495/bbcd3046-44c0-1aad-1913-056271859fd5.png)

バージョンが 9.0.0.10 になっていることが分かります。

また、 この先の作業で コマンドラインから各種処理を行ううえで、
dmgr に接続するための TCP/IP ポートを確認しておきます。
下図のようにリンクをたどり、 `SOAP_CONNECTOR_ADDRESS` のポート番号を確認しておきます。
（デフォルトで導入しているので 8879 になるはずです）

![DmgrPorts.png](https://qiita-image-store.s3.amazonaws.com/0/310495/38be7d5e-6a98-5b8b-2041-620c1bed26d1.png)


dmgr を停止する場合は以下のとおり。 起動の際には管理ユーザーの認証は不要ですが、
停止の際には 管理ユーザーID、パスワードを指定する必要があります。

```shell
# cd /usr/IBM/WebSphere/AppServer/profiles/Dmgr01/bin
# ./stopManager.sh -username wasadmin -password wasadmin

ADMU0116I: ツール情報は次のファイルに記録されています:
           /usr/IBM/WebSphere/AppServer/profiles/Dmgr01/logs/dmgr/stopServer.log
ADMU0128I: Dmgr01 プロファイルを使用してツールを開始しています
ADMU3100I: サーバーの構成を読み取ります: dmgr
ADMU3201I: サーバーの停止要求が出されました。 停止処理中です。
ADMU4000I: サーバー dmgr の停止が完了しました。

# ps -ef | grep dmgr

```

なお、起動停止が確認出来た後は、 後続作業のために dmgr は起動した状態にしておきます。

# カスタムプロファイルの作成 (NA, AP server 用)

WAS のノードを管理するノードエージェント (NA) や、 実際に Java プログラムを動かす AP Server は、「カスタムプロファイル」を作成し、その中に定義します。
カスタムプロファイルは、１号機・２号機（ほかにもあればすべてのサーバー）で作成します。
カスタムプロファイルを作成すると、NA はその中に自動的に作成されますので、
カスタムプロファイルの作成とNA の作成はほぼイコールです。
なお、AP Server は別途作成します。（次回以降）

カスタムプロファイルも、前述の管理プロファイル同様、 manageprofiles.sh スクリプトを用いて作成します。

必要となる情報は以下のとおりです。

※１号機・２号機共通の情報

|パラメータ|値|備考|
|:--|:--|:--|
|dmgr ホスト名|was9a|dmgr 導入先ホスト名|
|dmgr 接続ポート番号|8879| ※ SOAP_CONNECTOR_ADDRES のポート|
|プロファイル名|Custom01||
|プロファイルテンプレートパス|/usr/IBM/WebSphere/AppServer/profileTemplates/management||
|プロファイルパス|/usr/IBM/WebSphere/AppServer/profiles/プロファイル名||
|セル名|was9aCell01|dmgr 管理対象範囲名|
|管理ユーザー|wasadmin|管理コンソールログインやWAS 停止の際に必要なユーザー|
|管理パスワード|wasadmin|管理ユーザーのパスワード（導入時）|

※１号機向け情報

|パラメータ|値|備考|
|:--|:--|:--|
|NA導入ホスト名|was9a|１号機ホスト名|
|ノード名|was9aNode01|１号機用ノード名|

※２号機向け情報

|パラメータ|値|備考|
|:--|:--|:--|
|NA導入ホスト名|was9b|２号機ホスト名|
|ノード名|was9bNode01|２号機用ノード名|


管理プロファイルの場合と書式が異なりますので、記載します。

```shell
./manageprofiles.sh
 -create
 -templatePath テンプレートパス
 -profileName プロファイル名
 -profilePath プロファイルパス
 -hostname ノードエージェント導入先ホスト名
 -nodeName ノードエージェントが管理するノード名
 -dmgrHost dmgrが稼動するホスト名
 -dmgrPort dmgr の SOAP_CONNECTOR_ADDRESS ポート番号
 -dmgrAdminUserName 管理ユーザー名
 -dmgrAdminPassword 管理パスワード名
 -federateLater dmgr にすぐに統合するかどうか
 -validatePorts ポートの検証を行うかどうか

```

実際の作成は以下のとおりです。 （１号機のケースを記載）

```shell

# cd /usr/IBM/WebSphere/AppServer/bin
# ./manageprofiles.sh \
 -create \
 -templatePath /usr/IBM/WebSphere/AppServer/profileTemplates/managed \
 -profileName Custom01 \
 -profilePath /usr/IBM/WebSphere/AppServer/profiles/Custom01 \
 -hostname was9a \
 -nodeName was9aNode01 \
 -dmgrHost was9a \
 -dmgrPort 8879 \
 -dmgrAdminUserName wasadmin \
 -dmgrAdminPassword wasadmin \
 -federateLater false \
 -validatePorts true

INSTCONFSUCCESS: 成功: プロファイル Custom01 が存在します。 
このプロファイルに関する詳細については、/usr/IBM/WebSphere/AppServer/profiles/Custom01/logs/AboutThisProfile.txt を参照してください。


```

上記コマンドを実行すると、NA が生成され、dmgr 配下に組み込まれます。
`-federateLater true` とした場合、 後で addNode.sh を行う必要があります。

作成後、NA は起動された状態になるため、管理コンソールから ノードが作成されていることと
NA が作成されていることを確認します。
（下図はいずれも １号機、２号機両方作成済みのケースです）

![ConfirmNode.png](https://qiita-image-store.s3.amazonaws.com/0/310495/dff14e5e-ef5e-26fa-05bf-98001a60efc4.png)

![ConfirmNA.png](https://qiita-image-store.s3.amazonaws.com/0/310495/71a619de-49b3-815c-75d0-292a865d9fee.png)

NA を停止、起動する場合は以下のように行います。

※NA停止

```shell
# ps -ef | grep nodeagent
    root 10289234        1  11 14:43:54  pts/0  0:33 /usr/IBM/WebSphere/AppServer/java/8.0/bin/java -Xmaxt0.5 -Dwas.status.socket=33149 -Dosgi.install.area=/usr/IBM/WebSphere/AppServer -Dosgi.configuration.area=/usr/IBM/WebSphere/AppServer/profiles/Custom01/servers/nodeagent/configuration -Dosgi.framework.extensions=com.ibm.cds,com.ibm.ws.eclipse.adaptors -Xshareclasses:name=webspherev9_8.0_64_%g,nonFatal -Dcom.ibm.xtq.processor.overrideSecureProcessing=true -Xcheck:dump -Djava.security.properties=/usr/IBM/WebSphere/AppServer/properties/java.security -Djava.security.policy=/usr/IBM/WebSphere/AppServer/properties/java.policy -Dcom.ibm.CORBA.ORBPropertyFilePath=/usr/IBM/WebSphere/AppServer/properties -Xbootclasspath/p:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ibmorb.jar -Dorg.osgi.framework.bootdelegation=* -classpath /usr/IBM/WebSphere/AppServer/profiles/Custom01/properties:/usr/IBM/WebSphere/AppServer/properties:/usr/IBM/WebSphere/AppServer/lib/startup.jar:/usr/IBM/WebSphere/AppServer/lib/bootstrap.jar:/usr/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/usr/IBM/WebSphere/AppServer/lib/lmproxy.jar:/usr/IBM/WebSphere/AppServer/lib/urlprotocols.jar:/usr/IBM/WebSphere/AppServer/deploytool/itp/batchboot.jar:/usr/IBM/WebSphere/AppServer/deploytool/itp/batch2.jar:/usr/IBM/WebSphere/AppServer/java/8.0/lib/tools.jar -Dorg.osgi.framework.bootdelegation=* -Dibm.websphere.internalClassAccessMode=allow -Xms50m -Xmx3840m -Xcompressedrefs -Xscmaxaot16M -Xnoaot -Xscmx120M -Dws.ext.dirs=/usr/IBM/WebSphere/AppServer/java/8.0/lib:/usr/IBM/WebSphere/AppServer/profiles/Custom01/classes:/usr/IBM/WebSphere/AppServer/classes:/usr/IBM/WebSphere/AppServer/lib:/usr/IBM/WebSphere/AppServer/installedChannels:/usr/IBM/WebSphere/AppServer/lib/ext:/usr/IBM/WebSphere/AppServer/web/help:/usr/IBM/WebSphere/AppServer/deploytool/itp/plugins/com.ibm.etools.ejbdeploy/runtime -Dderby.system.home=/usr/IBM/WebSphere/AppServer/derby -Dcom.ibm.itp.location=/usr/IBM/WebSphere/AppServer/bin -Djava.util.logging.configureByServer=true -Duser.install.root=/usr/IBM/WebSphere/AppServer/profiles/Custom01 -Djava.ext.dirs=/usr/IBM/WebSphere/AppServer/tivoli/tam:/usr/IBM/WebSphere/AppServer/javaext:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ext -Djavax.management.builder.initial=com.ibm.ws.management.PlatformMBeanServerBuilder -Dpython.cachedir=/usr/IBM/WebSphere/AppServer/profiles/Custom01/temp/cachedir -Dwas.install.root=/usr/IBM/WebSphere/AppServer -Djava.util.logging.manager=com.ibm.ws.bootstrap.WsLogManager -Dserver.root=/usr/IBM/WebSphere/AppServer/profiles/Custom01 -Dcom.ibm.security.jgss.debug=off -Dcom.ibm.security.krb5.Krb5Debug=off -Djava.awt.headless=true -Djava.library.path=/usr/IBM/WebSphere/AppServer/lib/native/aix/ppc_64/:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ppc64/compressedrefs:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ppc64:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ppc64/j9vm:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ppc64:/usr/IBM/WebSphere/AppServer/java/8.0/jre/../lib/ppc64:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/icc:/usr/IBM/WebSphere/AppServer/bin:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ppc64/j9vm:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/ppc64:/usr/IBM/WebSphere/AppServer/java/8.0/jre/../lib/ppc64:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/icc:/usr/lib:/usr/lib64:/usr/lib: -Djava.endorsed.dirs=/usr/IBM/WebSphere/AppServer/endorsed_apis:/usr/IBM/WebSphere/AppServer/java/8.0/jre/lib/endorsed -Djava.security.auth.login.config=/usr/IBM/WebSphere/AppServer/profiles/Custom01/properties/wsjaas.conf -Djava.security.policy=/usr/IBM/WebSphere/AppServer/profiles/Custom01/properties/server.policy com.ibm.wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.WSLauncher com.ibm.ws.runtime.WsServer /usr/IBM/WebSphere/AppServer/profiles/Custom01/config was9aCell01 was9aNode01 nodeagent

# cd /usr/IBM/WebSphere/AppServer/profiles/Custom01/bin
# ./stopNode.sh -username wasadmin -password wasadmin

ADMU0116I: ツール情報は次のファイルに記録されています:
           /usr/IBM/WebSphere/AppServer/profiles/Custom01/logs/nodeagent/stopServer.log
ADMU0128I: Custom01 プロファイルを使用してツールを開始しています
ADMU3100I: サーバーの構成を読み取ります: nodeagent
ADMU3201I: サーバーの停止要求が出されました。 停止処理中です。
ADMU4000I: サーバー nodeagent の停止が完了しました。


```

プロセスの確認の際、上記の例では １行のプロセスとして見えていますが、
実際には改行されて見えるため非常に見づらいです。。。もうちょっと短くならないもんですかね。。。

※NA 起動

```shell
# ps -ef | grep nodeagent
# cd /usr/IBM/WebSphere/AppServer/profiles/Custom01/bin
# ./startNode.sh

ADMU0116I: ツール情報は次のファイルに記録されています:
           /usr/IBM/WebSphere/AppServer/profiles/Custom01/logs/nodeagent/startServer.log
ADMU0128I: Custom01 プロファイルを使用してツールを開始しています
ADMU3100I: サーバーの構成を読み取ります: nodeagent
ADMU3200I: サーバーが起動しました。 開始処理中です。
ADMU3000I: サーバー nodeagent は e-business に対してオープンな状態です。プロセス ID は 6291558 です。

```

NA は設定変更を各ノードに伝えたり、デプロイの際にファイルを展開したりしますので
基本的には起動したままです。


今回は少し短いですが、 ここまでとして、
次回は webサーバーの定義以降を行いたいと思います。


[←前回：WAS ND v9 Traditional をコマンドラインで入れてみた](https://qiita.com/shimauma999/items/5b6a90e908778082b08e)
[次回→ : WAS ND v9 Traditional をコマンドラインで入れてみた ～ その３](https://qiita.com/shimauma999/items/210cc977c46860835f86)

# 参考
■WAS 小ワザ集 第8回：GUIが使用できない環境でWASのプロファイルを作成する方法
https://www.ibm.com/developerworks/jp/websphere/library/was/was_tips/8.html

■manageprofiles コマンド
https://www.ibm.com/support/knowledgecenter/ja/SSEQTP_9.0.0/com.ibm.websphere.base.doc/ae/rxml_manageprofiles.html

■WAS ND v9 Traditional をコマンドラインで入れてみた
https://qiita.com/shimauma999/items/5b6a90e908778082b08e

----