以下の環境を仮定します。
ここでは、既にsshが利用できるということを前提に説明します。 すなわち、alice.hpcs.is.tsukuba.ac.jpから、dennis.hpcc.jpにsshでアクセ スすることができると仮定します。
まず、sshを利用する場合には、クライアントにおいて、ssh-agentによる自動 認証を設定する必要があ ります。詳しくは、???を参照することにして、以下に概略のみを説明してお きます。
ここで、ssh-agentによる自動認証が動いているかどうかを確認してください。
% ssh dennis.hpcc.jp
上記のコマンドで、リモートホストにパスワード入力無しでloginできればOK です。
deniss.hpcc.jpを使うためには、hosts.xmlに記述し、このホストファイルを 使ってクライアントプログラムを実行します。sshを用いたリモートホスト の場合は以下のように記述します。
<?xml version="1.0" ?> <OmniRpcConfig> <Host name="dennis.hpcc.jp" arch="i386" os="linux"> <Agent invoker="ssh" /> </Host> </OmniRpcConfig>
これはリモート実行プログラムを起動するためのagentをsshを使って行う ための記述です。この指定でのagentとrexの関係は以下のようになります。
リモートホストがクライアントホストとは異なる組織の場合には、リモートホ ストとクライアントホスト間にファイヤウォールが設定されていることがあり ます。sshで起動する場合にはsshのport forwardingを利用して、クライアン トとAgentの間の通信を行っていますが、さらにクライアントで実行 されるリモート実行モジュールとクライアントプログラムとの通信をこのport forwardingを使って通信させることができます。この機能が、通信の多重化機 能です。そのためには、Agentの記述にmxio属性を指定します。
<?xml version="1.0" ?> <OmniRpcConfig> <Host name="dennis.hpcc.jp" arch="i386" os="linux"> <Agent invoker="ssh" mxio="on" /> </Host> </OmniRpcConfig>
この指定でのagentとrexの関係は以下のようになります。この場合は、rexと クライアントとの通信は、agentを経由して行われます。
上のhosts.xmlを使う以外は同じ手順で実行することができます。
% a.out --hostfile hosts.xml args ...
なお、クライアントホストとリモートホストでユーザ名が異なる場合、などに ついては、Tipsを御覧ください。