Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)

Procedureマップのマスターサーバーを変更する方法

  1. 新しいマスターで、スーパーユーザーになるか、同等の役割になります。

    役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の第 9 章「役割によるアクセス制御の使用 (手順)」を参照してください。

  2. ディレクトリを変更します。


    newmaster# cd /var/yp
    
  3. 作成するマップを指定する前に、Makefile にこの新しいマップのエントリが必要です。新しいマップのエントリがない場合は、最初に、sites.byname というマップを使用して Makefile を編集します。

  4. マップを更新または再作成するには、次のように入力します。


    newmaster# make sites.byname
    
  5. 古いマスターサーバーが NIS サーバーとして残っている場合は、古いマスターサーバーに遠隔ログイン (rlogin) してから、Makefile を編集します。sites.byname を作成した Makefile 内のセクションをコメントアウトして、このセクションで sites.byname が再び作成されないようにします。

  6. sites.byname だけが ndbm ファイルとして存在している場合は、新しいマスターサーバー上に作成し直します。まず任意の NIS サーバーからコピーを分解し、次に makedbm を使ってそれを実行します。


    newmaster# cd /var/yp
    newmaster# ypcat sites.byname | makedbm -domain-/sites.byname
    

    新しいマスターサーバー上でマップが作成されたら、そのコピーをほかのスレーブサーバーに送信する必要があります。この場合、yppush を使用しないでください。yppush を使用すると、スレーブサーバーは新しいマスターサーバーからではなく古いマスターサーバーから新しいコピーを取得します。このような動作を回避するには、一般にマップのコピーを新しいマスターサーバーから古いマスターサーバーに送り返すという方法が使用されます。これを行うには、古いマスターサーバーでスーパーユーザーになるか、同等の役割になり、次のように入力します。


    oldmaster# /usr/lib/netsvc/yp/ypxfr -h newmaster sites.byname
    

    これで、yppush を使用できます。スレーブサーバーは古いマスターサーバーを現行のマスターサーバーとして認識しているので、マップの現行バージョンを古いマスターサーバーから取得しようとします。クライアントがこの処理を行うときは、新しいマスターサーバーが現行のマスターサーバーとして指定されている新しいマップを取得します。

    この方法が失敗した場合は、各 NIS サーバーの root としてログインして上記の ypxfr コマンドを実行できます。