以下の項では、スクリプト・ベースのノード・マネージャの構成方法について説明します。
SSHノード・マネージャは、WL_HOME
/common/bin/
にあるシェル・スクリプトwlscontrol.sh
です。wlscontrol.sh
ファイルは、ノード・マネージャを使用して制御するサーバー・インスタンスをホストするマシンごとに存在していなければなりません。このスクリプトは、サイト固有の要件を満たすようにカスタマイズできます。
ノード・マネージャまたはノード・マネージャ・クライアントを実行するマシンごとにSSHクライアントが実行可能でなければなりません。また、このスクリプトはユーザーIDが実行するパス内になければなりません。通常、SSHクライアントはUNIXまたはLinuxインストールの標準的な一部です。
ノード・マネージャを実行する前に、ノード・マネージャ機能の実行専用のUNIXユーザー・アカウントを作成する必要があります。このユーザーを、SSHのノード・マネージャをホストするすべてのマシンと、ノード・マネージャ・クライアント(管理サーバーを含む)をホストするすべてのマシンに追加します。
注意: UNIXプラットフォームでは、ノード・マネージャをルート・ユーザーとして実行しないでください。 |
例:
各ホスト・マシンで、ルート・ユーザーとして、2つの新しいオペレーティング・システム(OS)ユーザー(beaおよびndmgr)を作成し、これらをbeaという新しいグループに関連づけます。
beaはWebLogic Serverのインストールにのみ使用。
ndmgrは、WebLogic Serverドメインの作成や、管理サーバーとリモート管理対象サーバーの起動をノード・マネージャで実行するために使用。
ndmgrでWebLogicスクリプトおよび実行可能ファイルを実行できる適切な許可が与えられるよう、どちらのOSユーザーのOSグループも同じ(bea)にする必要があります。
例:
> groupadd bea
> useradd -g bea -m bea
> passwd bea
> useradd -g bea -m ndmgr
> passwd ndmgr
ノード・マネージャのSSHシェル・スクリプトは、異なるマシン上のユーザー間のセキュアな信頼関係を提供する、SSHユーザー・ベースのセキュリティに依存します。認証は必要ありません。ノード・マネージャのコマンドおよびスクリプトを実行するためのUNIXユーザー・アカウントを作成します(通常はドメインごとに1つ)。このユーザーとしてログインしたユーザーは、ユーザー名とパスワードを指定しなくてもノード・マネージャ・コマンドを発行できます。
注意: ノード・マネージャ・コマンドとWebLogic Serverコマンドが、コマンドの実行に使用されるUNIXユーザーIDのパスで使用可能になっていることを確認する必要もあります。ユーザーの環境ファイルを変更し、WL_HOME /common /bin /またはDOMAIN_HOME /bin /nodemanager へのパスが含まれるようにします。
例: PATH=/usr/bin:/bin:/home/username/bea/user_projects/domains/domain_name/bin/nodemanager このファイルは |
WebLogic Serverインスタンスを実行する各マシン上のndmgrユーザーと、同じマシン上の同じndmgrユーザー、さらに他の各マシン上の対応するndmgrユーザーの間でSSHによる信頼関係を構成します。
すなわち、あるマシン上の任意のndmgrユーザーは、同じマシンまたは異なるマシン上の同じ名前のndmgrユーザーと、セキュリティ資格証明を求められることなくSSHセッションを確立できる必要があります。ndmgrユーザーは、自身とのSSHセッションもセキュリティ資格証明を求められることなく確立できる必要があります。これは、管理対象サーバーが移行可能なサーバーのクラスタ・マスターになり、SSHを使用してクラスタ内の他のリモート管理対象サーバーを起動するコマンドを発行できるために必要です。ndmgrユーザーがSSHを使用してwlscontrol.sh
スクリプトを実行できさえすれば、管理対象サーバーの移行は機能します。詳細は、「WebLogic Serverスクリプトのセキュリティの構成」を参照してください。
たとえば、SSH version2で、ユーザーのあるインスタンスが別のインスタンスを信頼するように構成するには:
ターミナルからndmgrユーザーとしてログインします。
> ssh-keygen -t dsa
プロンプトが表示された場合はデフォルトの場所を受け入れ、パスフレーズに対して「Enter」を押し、パスフレーズを指定しないようにします。
ndmgrユーザーの公開鍵を、同じマシンおよびその他すべてのマシン上のndmgrユーザーのホーム・ディレクトリにコピーします。
> scp .ssh/id_dsa.pub ndmgr@192.168.1.101:./
ndmgrユーザーとして対象マシンとSSHセッションを確立し、リモートndmgrユーザーの信頼関係を設定します。
> ssh -l ndmgr 192.168.1.101 (you should be prompted for password)
> mkdir .ssh
> chmod 700 .ssh
> touch .ssh/authorized_keys2
> chmod 700 .ssh/authorized_keys2
> cat id_dsa.pub >> .ssh/authorized_keys2
> rm id_dsa.pub
> exit
パスワードを要求せずに、リモート・マシン上のndmgrユーザーとSSHセッションを確立できるかどうかをテストします。
> ssh -l ndmgr 192.168.1.101
すべてのマシンの組み合わせでこのプロセスを繰り返します。
あるいは、各マシンでキーと値のペアを生成し、すべての公開鍵を1つのauthorized_keys2
ファイルに連結し、そのファイルをすべてのマシンにコピー(scp
)しても、同じ結果が得られます。すべてのマシンの組み合わせでSSHセッションの確立を試行し、~/.ssh/known_hosts
ファイルが適切に構成されていることを確認します。詳細は、「キーと値のペアの生成と配布」を参照してください。
beaユーザーとして、WebLogic Serverを実行するすべてのマシン上のベース・ディレクトリ/opt/bea/wlserver_103
に、WebLogic Serverインスタンスをインストールします。
例:
> ./ wlserver_103_linux32.bin
ndmgrユーザーのホーム・ディレクトリで、管理サーバーのみをホストするマシン上にWebLogicドメインを作成します。
このドメイン・ディレクトリのconfig
サブディレクトリにある構成は、後で管理サーバーを起動する際、管理サーバーとドメインの設定を特定するために使用されます。
多くの場合、管理対象サーバー・インスタンスは、管理サーバーに対してリモートに実行されます。したがって、これらの管理対象サーバーは、管理サーバーのドメイン構成ディレクトリに直接アクセスすることはありません。代わりに、管理対象サーバーは、個々のマシンのndmgrホーム・ディレクトリにあるスケルトン・ドメイン・ディレクトリから実行され、起動時に、リモートに実行されている管理サーバーからネットワークを介して構成を取得します。
ndmgrユーザーとして、WebLogicドメインを作成します。
例:
構成ウィザードを実行します。
> /opt/bea/wlserver_103/common/bin/config.sh
デフォルトのWebLogic Serverテンプレートに基づき、WebLogicドメインを新たに作成します。
管理サーバーには、固定IPアドレス(192.168.1.100
など)を指定します。
「環境とサービスの設定のカスタマイズ」で「はい」を選択します。
「管理対象サーバーの構成」で、2つの管理対象サーバー、MS1
およびMS2
を追加します。
管理対象サーバーには、浮動IPアドレス(192.168.1.201
および192.168.1.202
など)を指定します。
[クラスタの構成で、クラスタCLUST
を追加し、このクラスタにMS1
およびMS2
を割り当てます。
マシンやUNIXマシンの指定は後で手動で行うため、ここでは実行しません。
ドメインの名前をclustdomain
にし、/opt/bea/clustdomain
に保存します。
ndmgrユーザーとして、wlscontrol.sh
ノード・マネージャ・スクリプトを使用してターミナルからローカルに管理サーバーを起動します。
例:
> /opt/bea/wlserver_103/common/bin/wlscontrol.sh -d clustdomain -r /opt/bea/clustdomain -c -f startWebLogic.sh -s AdminServer START
標準出力に冗長ロギングするには、コマンドに-x
パラメータを追加します。
正常に起動したら、管理サーバーを停止してからSSHを使用してリモートに起動します。
例:
> ssh -l ndmgr -o PasswordAuthentication=no %p 22 192.168.1.100 /opt/bea/wlserver_ 103/common/bin/wlscontrol.sh -d clustdomain -r /home/ndmgr/clustdomain -c -f startWebLogic.sh -s AdminServer START
管理対象サーバーをホストする各マシンでは、スケルトン・ドメインを作成し、構成します。
ローカルのターミナルから、各管理対象サーバー・ホスト・マシンおよびバックアップ・マシンのndmgrユーザーのホーム・ディレクトリに、空のディレクトリ(clustdomain
)を新たに作成します。例:
> mkdir clustdomain
各管理対象サーバー・ホスト・マシンおよびバックアップ・マシンで、ndmgrユーザーとしてWLSTを使用し、サーバーのリモート実行用およびノード・マネージャ用のベース・ディレクトリとしてユーザーのホーム・ディレクトリを登録します。
例:
> opt/bea/wlserver_103/common/bin/wlst.sh
> connect('weblogic','weblogic','t3://192.168.1.100:7001')
> nmEnroll('/home/ndmgr/clustdomain','/home/ndmgr')
> exit()
nmEnroll
は、各リモート・マシンに対して実行してください。このコマンドにより、プロパティ・ファイル/home/ndmgr/nodemanager.domains
が生成され、ドメイン名がホーム・ディレクトリにマップされ、必要なドメイン構成とセキュリティ情報が作成されるため、管理対象サーバーは管理サーバーと通信できるようになります。
このnodemanager.domains
ファイルにより、wlscontrol.sh
の起動時に-r
を使用してドメイン・ホーム・ディレクトリを指定せずに済みます。ただし、ノード・マネージャのホーム・ディレクトリを変更したため、-n /home/ndmgr
を指定する必要があります。ノード・マネージャのデフォルトのホーム・ディレクトリは/opt/bea/wlserver_103/common/nodemanager.domains
ですが、このディレクトリは製品のインストール・ディレクトリ内にあり、他のユーザーが所有するため、使用しないことをお薦めします。
ノード・マネージャの新しいドメイン・ホームに、WebLogicスクリプト・ディレクトリ(bin
)を作成します。
例:
> mkdir ~/clustdomain/bin
管理サーバーのドメインbin
ディレクトリのスクリプトを、各ノード・マネージャ・マシン上の対応するドメインbin
ディレクトリ(/home/ndmgr/bin
など)にコピーします。例:
> scp ndmgr@192.168.1.100: ~/clustdomain/bin/* ndmgr@192.168.1.101:~/clustdomain/bin
バックアップ・マシンを含む各ノード・マネージャ・マシンで、bin
ディレクトリ内のシェル・スクリプトを編集し、ローカル・ドメイン・ホームの適切なパスとリモート管理サーバーのIPアドレスを反映させます。
例:
setDomainEnv.sh
スクリプト内のDOMAIN_HOME
およびLONG_
DOMAIN_HOME
変数を編集し、このリモート・ホーム・ディレクトリを適切に反映させます(DOMAIN_HOME
=/home/ndmgr/clustdomain
LONG_
DOMAIN_HOME
=/home/ndmgr/clustdomain
)。
同様に、startWebLogic.sh
内のDOMAIN_HOME
変数を編集します。
startManagedWebLogic.sh
内のDOMAIN_HOME
およびADMIN_URL
変数(t3://192.168.1.100:7001
など)を編集します。
バックアップ・マシンを含む各管理対象サーバー・ホスト・マシンに対し、ndmgrユーザーとして、ドメイン・ディレクトリにserver/security
サブディレクトリを作成します。
たとえば、管理対象サーバーがMS1
の場合は次のように指定します。
> mkdir -p ~/clustdomain/servers/MS1/security
注意: バックアップ・マシンでは、すべての移行可能管理対象サーバー(たとえば、MS1 とMS2 )のサーバー・ディレクトリを作成します。 |
適切なユーザー名変数とパスワード変数が指定されたboot.properties
ファイルを、各管理対象サーバーのsecurity
ディレクトリ(/home/ndmgr/clustdomain/servers/MS1/security
など)に新たに作成します。
例:
username=weblogic
password=welcome1
注意: このファイル内の値は、スクリプト・ベースのノード・マネージャで管理対象サーバーを初めて起動するときに暗号化されます。 |
各管理対象サーバー・マシンについて、ndmgrユーザーとして、wlscontrol.sh
ノード・マネージャ・スクリプトを使用してターミナルからローカルに管理対象サーバーを起動します。
たとえば、管理対象サーバーMS1
を起動するには、次のように指定します。
> opt/bea/wlserver_103/common/bin/wlscontrol.sh -d clustdomain -n /home/ndmgr -c -f startManagedWebLogic.sh -s MS1 START
標準出力に冗長ロギングするには、コマンドに-x
パラメータを追加します。
正常に起動したら、その管理対象サーバーを停止してから、ndmgrユーザーとしてSSHを使用してリモートからの再起動を試みます。
たとえば、MS1
を起動するには、次のように指定します。
> ssh -l ndmgr -o PasswordAuthentication=no -p 22 192.168.1.101 /opt/bea/wlserver_103/common/bin/wlscontrol.sh -d clustdomain -n /home/ndmgr -c -f startManagedWebLogic.sh -s MS1 START
正常に起動したら、その管理対象サーバーを再び停止し、バックエンド・マシン上の各管理対象サーバー(MS1
)の起動を試行してこのプロセスを繰り返します。正常に起動する度に、そのサーバーを停止してください。
管理コンソールを使用して、管理サーバーまたは管理対象サーバーをホストする各マシン(バックアップ・マシンも含む)に新しいUNIXマシンを追加し、次の設定を含めます。
表5-1 UNIXマシンの設定
プロパティ | 値 |
---|---|
OSの種類 |
UNIX |
ノード・マネージャの種類 |
SSH |
ノード・マネージャのリスニング・アドレス |
< |
ノード・マネージャのリスニング・ポート |
22 |
ノード・マネージャのホーム・ディレクトリ |
/home/ndmgr |
ノード・マネージャのシェル・コマンド |
ssh -l ndmgr -o PasswordAuthentication=no -p %P %H /opt/bea/wlserver_103/common/bin/wlscontrol.sh -d %D -n /home/ndmgr -c -f startManagedWebLogic.sh -s %S %C |
ノード・マネージャのデバッグの有効化 |
true |
サーバー |
< |
すべてのUNIXマシンが設定されたら、各サーバーがその対応UNIXマシンと関連していることを確認するために、管理コンソールを使用して、各サーバーに対してマシンプロパティを設定します。Oracle WebLogic Server管理コンソール・ヘルプの「サーバー・インスタンスのマシンへの割当」を参照してください。
管理コンソールで、すべての管理対象サーバーを起動します。Oracle WebLogic Server管理コンソール・ヘルプの「管理コンソールからの管理対象サーバーの起動」を参照してください。
各管理対象サーバーの/
home
/ndmgr/
clustdomain
/servers/
managed_server_name
/logs
ディレクトリにあるサーバー・ログで、サーバーがエラーなく起動していることを確認します。
ノード・マネージャで使用されるデフォルトのSSHポートは22です。この設定は、以下の方法でオーバーライドできます。
個々のユーザーのデフォルト・ポートを設定する場合は、~/.ssh/config
ファイルでPort=
パラメータを設定します。
システム全体のデフォルト・ポートを設定する場合は、/etc/ssh_config
ファイルでPort=
パラメータを設定します。
次のシステム・プロパティを使用して、管理サーバーを起動します。
-Dweblogic.nodemanager.ShellCommand="ssh -o PasswordAuthentication=no -p %P %H wlscontrol.sh -d %D -r %R -s %S %C"
サーバーの起動後、管理サーバーの構成ファイルでSSHポートを編集できます。
サーバーの移行などのタスクを実行するには、wlscontrol.sh
などのスクリプトを実行するユーザーIDに十分なセキュリティ・許可が必要です。たとえば、ネットワーク・インタフェースを通じてIPアドレスをオンラインにしたり、オフラインにしたりできる許可などです。
サーバーの移行は、サーバーに障害が発生したことを検出したときに、クラスタ・マスターによって実行されます。クラスタ・マスターはSSHを使用して対象のマシンにあるスクリプトを起動し、移行を開始します。対象のマシンにあるスクリプトは、クラスタのマスター上でサーバーを実行しているのと同じユーザーIDで実行されます。
サーバーの移行を実行するために必要なコマンドはwlsifconfig
とarping
です。これらのスクリプトには高度なOS権限が必要になるため、セキュリティ・ホールの可能性を防止できる点に留意することが重要です。sudoを使用すると、高度な権限によるwlsifconfig
とarping
の実行のみを許可するようにSSHを構成できます。
ノード・マネージャを使用してサーバー・インスタンスを起動するには、リモート起動ユーザーのユーザー名とパスワードが必要です。管理サーバーと管理対象サーバーでは、これらの資格証明の指定方法が異なります。
管理対象サーバーの資格証明 - 管理対象サーバーを起動するためにノード・マネージャを呼び出す場合、リモート起動ユーザーのユーザー名とパスワードはノード・マネージャによって管理サーバーから取得されます。
管理サーバーの資格証明 - 管理サーバーを起動するためにノード・マネージャを呼び出す場合、リモート起動ユーザーのユーザー名はコマンド・ラインで指定することも、管理サーバーのboot.properties
ファイルから取得することもできます。構成ウィザードは、ドメインの作成時に管理サーバーのboot.properties
ファイルおよびstartup.properties
ファイルを初期化します。
ノード・マネージャによって起動されたサーバー・インスタンスでは、自動再起動に使用するために、サーバーの起動に使用された資格証明が暗号化され、サーバー固有のboot.properties
ファイルに保存されます。
スクリプト・ベースのノード・マネージャでは、2種類のキーと値のペアが使用されます。この項では、キーと値のペアをノード・マネージャのクライアントまたはサーバーをホストするマシンに配布する手順について説明します。
このオプションでは、同じキーと値のペアをノード・マネージャのクライアントまたはサーバーをホストするすべてのマシンに配布します。
最も簡単な方法は、ノード・マネージャ・ユーザーのホーム・ディレクトリを各マシンにマウントするようにするようにLANを設定することです。これにより、キーと値のペアがすべてのマシンで使用可能になります。この方法を使用しない場合は、次の手順を行います。
SSHインストールに付属のssh-keygen
コマンドを使用して、ユーザーのRSAキー値ペアを生成します。
秘密鍵と公開鍵のデフォルトの場所はそれぞれ、~/.ssh/id_rsa
と~/.ssh/id_rsa.pub
です。
これらのキーが異なる場所に格納されている場合は、ssh
コマンドにオプションを追加してキーの場所を指定するようにShellCommand
テンプレートを変更します。
ノード・マネージャ・マシン上の ~/.ssh/authorized_keys
ファイルに公開鍵を追加します。
例:
command="/home/bea/server90/common/nodemanager/nodemanager.sh" 1024 33 23...2323
ここで、例で示した次の文字列を、id_rsa.pub
に格納されている生成した公開鍵で置き換えます。
1024 33 23...2323
注意: 接頭辞command= コマンド は、公開鍵を使用してマシンとのセッションを確立するユーザーがnodemanager.sh で指定されたコマンドしか実行できないことを保証しています。これによりユーザーはノード・マネージャ機能を実行するだけになり、データ、システム・ユーティリティなどのマシン上のリソースへの権限のないアクセスが防止されます。 |
ノード・マネージャのサーバー・インスタンスまたはクライアントをホストする各マシンにキーと値のペアを手動で配布します。
クライアント・マシン上で次のコマンドを実行して、ノード・マネージャ・クライアントがノード・マネージャにアクセスできることを確認します。
/home/bea$ ssh montgomery VERSION
次のレスポンスは、クライアントがノード・マネージャに正常にアクセスしたことを示します。
+OK NodeManager v9.1.0
ノード・マネージャ・クライアントをホストするマシンごとに、次の手順を行います。
前の項のステップ1の説明に従って、ノード・マネージャ・ユーザーの個々のRSAキー値ペアを生成します。
前の項のステップ2の説明に従って、マシン上の ~/.ssh/authorized_keys
ファイルに公開鍵を追加します。