この節では、nismkdir コマンドを使用して既存のドメインにルート以外のサーバーを追加する方法を説明します。nisserver スクリプトを使用すれば、より簡単に追加できます。方法については、第 4 章「スクリプトを使用した NIS+ の設定」を参照してください。
nismkdir コマンドは、ルート以外の NIS+ ディレクトリを作成し、これをマスターサーバーに関連付けます。ルートディレクトリを作成するには、「nisinit コマンド」で説明する nisinit -r コマンドを使います。nismkdir コマンドを使って、複製サーバーを既存のディレクトリに追加できます。
NIS+ ディレクトリを作成するには、いくつかの関連作業のほかに、いくつかの前提条件があります。
ディレクトリを作成するには、以下のように入力します。
nismkdir [-m master-server] \ directory-name |
複製を既存のディレクトリに追加するには、以下のように入力します。
nismkdir -s replica-server \ directory-name nismkdir -s replica-server \ org_dir.directory-name nismkdir -s replica-server \ groups_dir.directory-name |
ディレクトリを作成するには、(ドメインのマスターサーバー上の) 親ディレクトリに対する作成権が必要です。まず -m オプションを使ってマスターサーバーを定義し、次に -s オプションを使って複製を定義します。
nismkdir -m master directory nismkdir -s replica directory |
nismkdir は必ず (複製サーバーではなく) マスターサーバー上で実行してください。複製サーバー上で nismkdir を実行しないでください。複製サーバーで実行すると、マスターサーバーと複製サーバーの間で通信上の問題が発生します。
この例では、sales.doc.com. ディレクトリを作成してから、そのマスターサーバー smaster.doc.com. と複製サーバー rep1.doc.com. を指定します。これはルートマスターサーバーから入力します。
rootmaster% nismkdir -m smaster.doc.com. sales.doc.com. rootmaster% nismkdir -m smaster.doc.com. org_dir.sales.doc.com. rootmaster% nismkdir -m smaster.doc.com. groups_dir.sales.doc.com. rootmaster% nismkdir -s rep1.doc.com. sales.doc.com. rootmaster% nismkdir -s rep1.doc.com. org_dir.sales.doc.com. rootmaster% nismkdir -s rep1.doc.com. groups_dir.sales.doc.com. |
小規模またはテスト用の名前空間でないかぎりは推奨しませんが、nismkdir コマンドを使えば、独自のサーバーを指定する代わりに、親ディレクトリのサーバーを新しいディレクトリ用に使えます。 次に 2 つの例を示します。
最初の例では、sales.doc.com. ディレクトリを作成し、これをその親ディレクトリのマスターと複製サーバーに関連付けます。
rootmaster% nismkdir sales.doc.com |
2 番目の例では、sales.doc.com. ディレクトリを作成し、独自のマスターサーバーである smaster.doc.com. を指定します。
rootmaster% nismkdir -m smaster.doc.com. sales.doc.com. |
複製サーバーは指定されないため、nismkdir を再び使用して複製を割り当てるまでは、新しいディレクトリにはマスターサーバーしかありません。sales.doc.com. ドメインがすでに存在する場合、上記の nismkdir コマンドは、salesmaster.doc.com. をその新しいマスターサーバーとし、その古いマスターサーバーを複製サーバーに格下げします。
この章では nismkdir コマンドを使用して複製サーバーを既存のシステムに追加する方法を説明します。nisserver スクリプトを使用すると、より簡単に追加できます。
以下の点に注意してください。
サブドメインサーバーは、サブドメインの 1 つ上の階層の親ドメイン (またはその一部) に置く。たとえば、名前空間に prime という名前のルートドメインと sub1 という名前のサブドメインがある場合は、次のようになる
prime ドメインにサービスを提供するマスターサーバーと複製サーバーは、prime がルートドメインであるため、prime ドメインの一部になる
sub1 サブドメインにサービスを提供するマスターサーバーと複製サーバーも、prime が sub1 の親ドメインであるため、prime ドメインの一部になる
マスターサーバーまたは複製サーバーから複数のドメインにサービスを提供することもできるが、そのような措置は避けた方がよい
新しい複製サーバーを既存のディレクトリに割り当てるには、マスターサーバーに対して -s オプションと既存のディレクトリ名 (org_dir と groups_dir) を指定した nismkdir を使います。
nismkdir -s replica-server existing-directory-name nismkdir -s replica-server org_dir. existing-directory-name nismkdir -s replica-server groups_dir. existing-directory-name |
nismkdir コマンドは、ディレクトリがすでに存在することを知っているため、再び作成しません。単に、追加の複製サーバーを割り当てるだけです。たとえば、新しい複製サーバーマシン名が rep1 である場合は、以下のように入力します。
rootmaster% nismkdir -s rep1.doc.com. doc.com. rootmaster% nismkdir -s rep1.doc.com. org_dir.doc.com. rootmaster% nismkdir -s rep1.doc.com. groups_dir.doc.com. |
nismkdir は必ず (複製サーバーではなく) マスターサーバー上で実行してください。複製サーバー上で nismkdir を実行しないでください。複製サーバーで実行すると、マスターサーバーと複製サーバーの間で通信上の問題が発生します。
上記の説明に従って nismkdir を 3 回繰り返して実行した後は、以下の 3 つのディレクトリでマスターサーバーから nisping を実行する必要があります。
rootmaster# nisping doc.com. rootmaster# nisping org_dir.doc.com. rootmaster# nisping group_dir.doc.com. |
この結果は以下のようになります。
rootmaster# nisping doc.com. Pinging replicas serving directory doc.com. : Master server is rootmaster.doc.com. Last update occurred at Wed Nov 18 19:54:38 1995 Replica server is rep1.doc.com. Last update seen was Wed Nov 18 11:24:32 1995 Pinging ... rep1.doc.com |
マスターサーバーの cron ファイルに、nisping コマンドが少なくとも 24 時間に一度 (この 3 つのディレクトリに対して) 実行されるよう設定しておくことをお勧めします。