Sun Java System Directory Server Enterprise Edition 6.3 管理ガイド

第 3 章 Directory Server のインスタンスとサフィックス

この章では、Directory Server のインスタンスとサフィックスを作成、管理する方法について説明します。その他多くのディレクトリ管理業務はサフィックスレベルで設定されますが、このマニュアルでは別の章で説明しています。

この章の内容は次のとおりです。

サーバーインスタンスとサフィックスを手短に作成する手順

この章では、サーバーインスタンスとサフィックスを作成する方法について詳しく説明します。Directory Server のインスタンスとサフィックスを手短に作成し、サンプルデータをインポートする必要がある場合は、『Sun Java System Directory Server Enterprise Edition 6.3 Installation Guide』「Server Instance Creation」を参照してください。

Directory Server インスタンスの作成と削除

この節では、Directory Server インスタンスの作成と削除の方法について説明します。

ProcedureDirectory Server インスタンスを作成する

データを管理する前に、コマンド行ツールまたはブラウザインタフェース Directory Service Control Center (DSCC) を使用して Directory Server インスタンスを作成する必要があります。DSCC で、Directory Server インスタンスは単に「Directory Server」と呼ばれることがあります。

Directory Server インスタンスを作成する場合、Directory Server に必要なファイルとディレクトリは、指定した instance-path で作成されます。

このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。

DSCC を使用して新しいサーバーインスタンスを作成する場合は、既存のサーバーからサーバー設定の一部またはすべてをコピーするよう選択できます。

  1. 新しい Directory Server インスタンスを作成して、インスタンスパスを設定します。


    $ dsadm create instance-path
    

    このサーバーのディレクトリマネージャーのパスワードを設定するよう要求されます。

    サーバーインスタンスにデフォルト以外のポート番号またはその他のパラメータを指定するには、dsadm(1M) のマニュアルページを参照してください。

    たとえば、ディレクトリ /local/ds で新しいインスタンスを作成するには、次のコマンドを使用します。


    $ dsadm create /local/ds
    Choose the Directory Manager password:
    Confirm the Directory Manager password:
    Use 'dsadm start /local/ds' to start the instance 
  2. サーバーインスタンスが正しく作成されていることを確認します。


    $ dsadm info instance-path
    

    次に例を示します。


    $ dsadm info /local/ds1
    インスタンスのパス:         /local/ds1
    所有者:                 user1(group1)
    セキュリティーが確保されていないポート:       1389
    セキュアポート:           1636
    ビットフォーマット:            64-bit
    状態:               稼働中
    サーバーの PID:            22555
    DSCC URL:              -
    SMF アプリケーション名:  -
    ブート時に起動する:         無効
    インスタンスのバージョン:      D-A00
  3. (省略可能) Java Enterprise System インストーラまたはネイティブのパッケージインストールを使用して Directory Server をインストールし、お使いの OS にサービス管理ソリューションがある場合は、次の表で示すように、サーバーがサービスとして管理されるようにできます。

    オペレーティングシステム 

    コマンド 

    Solaris 10 

    Sun クラスタ環境で作業している場合、次のコマンドを使用します。 

    dsadm enable-service --type CLUSTER instance-path resource-group

    そうでない場合は、次のようになります。 

    dsadm enable-service --type SMF instance-path

    Solaris 9 

    Sun クラスタ環境で作業している場合、次のコマンドを使用します。 

    dsadm enable-service --type CLUSTER instance-path resource_group

    そうでない場合は、次のようになります。 

    dsadm autostart instance-path

    Linux、HP-UX 

    dsadm autostart instance-path

    Windows 

    dsadm enable-service --type WIN_SERVICE instance-path

  4. Directory Server を起動します。


    $ dsadm start instance-path
    

    注 –

    サーバーは実行されますが、データやサフィックスは含まれていません。サフィックスを作成するには、 dsconf を使用します。


  5. (省略可能) 次のいずれかの方法で、サーバーインスタンスを登録します。

    • URL https://host:6789 にアクセスし、DSCC によってサーバーを登録します。

    • dsccreg add-server コマンドを使用します。

      詳細については、dsccreg(1M) のマニュアルページを参照してください。

  6. Directory Server インスタンスがスタンドアロンでパスワードポリシーを使用する場合、またはDS6-only パスワードポリシーモードにすでに移行したレプリケーショントポロジに属している場合は、インスタンスをこのモードに移行します。


    $ dsconf pwd-compat -h host -p port to-DS6-migration-mode
    
    ## Beginning password policy compatibility changes .
    ## Password policy compatibility changes finished.
    
    Task completed (slapd exit code: 0).
    $ dsconf pwd-compat -h host -p port to-DS6-mode
    
    ## Beginning password policy compatibility changes .
    ## Password policy compatibility changes finished.
    
    Task completed (slapd exit code: 0).

ProcedureDirectory Server インスタンスを削除する

このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。

  1. Directory Server を停止します。


    $ dsadm stop instance-path
    
  2. 以前に DSCC を使用してサーバーを管理していた場合は、コマンド行を使用してサーバーを登録解除します。


    $ dsccreg remove-server /local/ds
    Enter DSCC administrator's password:
    /local/ds is an instance of DS
    Enter password of "cn=Directory Manager" for /local/ds:
    This operation will restart /local/ds.
    Do you want to continue ? (y/n) y
    Unregistering /local/ds from DSCC on localhost.
    Connecting to /local/ds
    Disabling DSCC access to /local/ds
    Restarting /local/ds

    詳細については、dsccreg(1M) のマニュアルページを参照してください。

  3. (省略可能) 以前にサーバー管理ソリューションでサーバーインスタンスを有効にした場合は、サービスとしてのサーバーの管理を無効にします。

    オペレーティングシステム 

    コマンド 

    Solaris 10 

    Sun クラスタ環境で作業している場合、次のコマンドを使用します。 

    dsadm disable-service --type CLUSTER instance-path

    そうでない場合は、次のようになります。 

    dsadm disable-service --type SMF instance-path

    Solaris 9 

    Sun クラスタ環境で作業している場合、次のコマンドを使用します。 

    dsadm disable-service --type CLUSTER instance-path

    そうでない場合は、次のようになります。 

    dsadm autostart --off instance-path

    Linux、HP-UX 

    dsadm autostart --off instance-path

    Windows 

    dsadm disable-service --type WIN_SERVICE instance-path

  4. サーバーインスタンスを削除します。


    $ dsadm delete instance-path
    

    注意 – 注意 –

    このコマンドによって、データベースやデータを含むすべてが削除されます。

    インスタンスがサービスとして有効にされている場合、またはインスタンスがシステムの起動時に自動的に起動されている場合には、ルートアクセス権を持つ管理ユーザーで、dsadm delete を実行する必要があります。


Directory Server インスタンスの起動、停止、および再起動

コマンド行からサーバーを起動、停止、または再起動するには、それぞれコマンド dsadm startdsadm stop、または dsadm restart を使用します。


注 –

エントリを維持するよう設定されたメモリーに大容量のキャッシュがある状態で Directory Server インスタンスを停止して再起動する場合、キャッシュを復元するにはしばらく時間がかかります。キャッシュを復元している間、インスタンスの応答時間は遅くなります。


これらのコマンドは、Directory Server を作成したものと同じ UID と GID で実行するか、root で実行する必要があります。たとえば、Directory Server を user1 として実行している場合、startstop、および restart ユーティリティーも user1 として実行する必要があります。


注 –

Solaris 上では、役割に基づくアクセス制御によって、root 以外のユーザーとして Directory Server を実行できます。


ProcedureDirectory Server を起動、停止、および再起動する

このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。ただし、これは、サービス管理を有効および無効にする手順には適用されません。サービス管理の有効化と無効化は、Directory Server の起動および停止時にコマンド行で実行する必要があります。

  1. Directory Server を起動、停止、および再起動するには、次のいずれかを実行します。

    • サーバーを起動するには、次のように入力します。


      $ dsadm start instance-path
      

      たとえば、インスタンスパスが /local/ds のサーバーを起動するには、次のコマンドを使用します。


      $ dsadm start /local/ds
    • サーバーを停止するには、次のように入力します。


      $ dsadm stop instance-path
      

      次に例を示します。


      $ dsadm stop /local/ds
    • サーバーを再起動するには、次のように入力します。


      $ dsadm restart instance-path
      

      次に例を示します。


      $ dsadm restart /local/ds

サフィックスの作成

Directory Server インスタンスを作成した後、サーバーのディレクトリ情報ツリー (DIT) に対して 1 つまたは複数のサフィックスを作成します。DIT はサーバー内のすべてのエントリから構成され、エントリはそれぞれ DN (識別名) によって識別されます。DN は階層構造を持つため、ツリー内のデータ構成を決定する分岐のエントリおよびリーフエントリが作成されます。DIT は、サフィックスとサブサフィックスの点で管理上、定義され、管理されます。DSCC は、これらの要素すべての作成と管理を制御します。または、コマンド行ツールを使用することもできます。

ディレクトリデータの構造化と一般的なサフィックスの概念的な情報については、『Sun Java System Directory Server Enterprise Edition 6.3 配備計画ガイド』を参照してください。

次の手順で説明しているように、dsconf create-suffix コマンドを使用して、ディレクトリでサフィックス設定を作成できます。ルートサフィックスとサブサフィックスは、サーバーによって内部的に同じ方法で管理されるため、それらをコマンド行から作成する手順はほとんど同じです。手順では、必要なオプションのみと dsconf create-suffix コマンドを使用しています。このコマンドのその他のオプションについては、dsconf(1M) のマニュアルページを参照するか、次のコマンドを実行してください。


$ dsconf create-suffix --help

任意の管理ユーザーが設定エントリを作成できます。ただし、サフィックスの最上位エントリは、ディレクトリマネージャーが作成するか、cn=admin,cn=Administrators,cn=config のようなディレクトリ管理者が作成する必要があります。

Procedureサフィックスを作成する

このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。

DSCC を使用して新しいサフィックスを作成するには、既存のサフィックスからサフィックス設定の一部またはすべてをコピーするよう選択できます。

  1. ルートサフィックスを作成します。

    サーバーが起動中であることを確認して、次のコマンドを入力します。


    $ dsconf create-suffix -h host -p port suffix-DN
    

    ここで、suffix-DN は新しいサフィックスの完全な DN です。ルートサフィックスでは、ドメインコンポーネント (dc) のネーミング属性が使用されます。

    たとえば、DN dc=example,dc=com のサフィックスを作成する場合は、次のコマンドを使用します。


    $ dsconf create-suffix -h host1 -p 1389 dc=example,dc=com

    このコマンドによって、次のように新しいサフィックスが作成されます。

    • ルートサフィックスの最上位レベル (またはベース) エントリが作成されます。

    • cn=config 内にサフィックスとデータベースの両方に対する設定エントリが作成されます。

    • デフォルトデータベース名は、サフィックス DN に基づきます。

    作成された新しいサフィックスを含む、すべてのサフィックスについては、次のコマンドを使用します。


    $ dsconf list-suffixes -h host -p port -v

    -v オプションによって冗長モードが表示されます。これによって、サフィックス上のエントリの数とレプリケーション情報が表示されます。


    注 –

    複数の Directory Server インスタンスがある場合、 -h host name-p port number オプションを使用して、サフィックスの属するサーバーインスタンスを指定します。

    データベースファイル用にデフォルト以外のパスを指定する場合は、-L オプションを使用します。サフィックスデータベースパスはあとで変更できます。これを実行するには、コマンド dsconf set-suffix-prop suffix-DN db-path:new-db-path を使用してから、サーバーを停止し、データベースファイルを手動で移動して、サーバーを再起動します。

    サフィックスの作成時に使用できるオプションをすべて確認するには、dsconf(1M) のマニュアルページを参照してください。


  2. 必要に応じてサブサフィックスを作成します。


    $ dsconf create-suffix -h host -p port subSuffix-DN
    

    その後、サブサフィックスをルートサフィックスに追加します。


    $ dsconf set-suffix-prop -h host -p port subSuffix-DN parent-suffix-dn:parentSuffix-DN
    

    ここで、parentSuffix-DN は、前の手順の suffix-DN と同じ値にします。サブサフィックスの suffix-DN には、サブサフィックスの相対識別名 (RDN) と親サフィックスの DN が含まれます。

    たとえば、サブサフィックス ou=Contractors,dc=example,dc=com を作成して、サブサフィックスをルートサフィックスに追加するには、次のように入力します。


    $ dsconf create-suffix -h host1 -p 1389 ou=Contractors,dc=example,dc=com
    $ dsconf set-suffix-prop -h host1 -p 1389 ou=Contractors,dc=example,dc=com \
     parent-suffix-dn:dc=example,dc=com

    このエントリがディレクトリに追加されると、サーバーのデータベースモジュールは、次のディレクトリにデータベースファイルを自動的に作成します。


    instance-path/db/database-name
    

    ここで、database-name は、サフィックスの一部から自動的に構築された名前です。たとえば、前の例で、database-nameContractors となります。

  3. (省略可能) サフィックスをデータで初期化します。「サフィックスの初期化」を参照してください。

サフィックスの無効化と有効化

場合によっては、保守のためにサフィックスを使用不可にしたり、セキュリティー上の理由からその内容を使用不可にする必要のあることがあります。サフィックスを無効にすることによって、クライアント操作に応えてサーバーがサフィックスの内容を読み書きするのを防げます。サフィックスを無効にすると、そのサフィックスにアクセスすることはできなくなり、リフェラルモードは自動的に無効になります。

Procedureサフィックスを無効にしてから有効にする

このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。

  1. サフィックスを無効にします。


    $ dsconf set-suffix-prop -h host -p port suffix-DN enabled:off

    注 –

    レプリケートされたサフィックスのほとんどのプロパティーがレプリケーションメカニズムによって決定されるため、レプリケーションが有効になっているサフィックスを無効にすることはできません。


  2. サフィックスを有効にします。


    $ dsconf set-suffix-prop -h host -p port suffix-DN enabled:on

リフェラルを設定し、サフィックスを読み取り専用にする

サフィックスを完全に無効にすることなくサフィックスへのアクセスを制限するには、アクセス権を変更して、読み取り専用アクセスを許可することもできます。この場合、書き込み操作に対しては、別のサーバーへのリフェラルを定義する必要があります。また、読み取りアクセスと書き込みアクセスの両方を拒否し、サフィックスへのすべての操作に対するリフェラルを定義できます。

さらに、リフェラルを使用して、クライアントアプリケーションが一時的に別のサーバーを使用するように設定することもできます。たとえば、サフィックスの内容をバックアップしている間、別のサフィックスへリフェラルを追加できます。

サフィックスがレプリケートされた環境のコンシューマである場合、レプリケーションメカニズムによって、リフェラル設定の値が決まります。リフェラルの設定は手動で変更できますが、リフェラルは次のレプリケーションの更新時に上書きされます。レプリケーションのリフェラルの設定については、「コンシューマの詳細設定を行う」を参照してください。

リフェラルはラベル化された URL なので、LDAP URL には空白文字とラベルが続く場合があります。次に例を示します。


ldap://phonebook.example.com:389/

または


ldap://phonebook.example.com:389/ou=All%20People,dc=example,dc=com

リフェラルの URL 部分にある空白文字は、%20 を使用してエスケープする必要があります。

Procedureリフェラルを設定して、サフィックスを読み取り専用にする

このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。

  1. リフェラルの URL を設定します。


    $ dsconf set-suffix-prop -h host -p port suffix-DN referral-url:LDAP-URL
    

    ここで、LDAP-URL はターゲットのホスト名、ポート名、DN を含む有効な URL です。

    次に例を示します。


    $ dsconf set-suffix-prop -h host1 -p 1389 dc=example,dc=com \
     referral-url:ldap://phonebook.example.com:389/

    LDAP URL は任意の個数だけ指定できます。

  2. サフィックスを読み取り専用にするためにリフェラルモードを設定します。


    $ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:only-on-write

    サフィックスを読み取りも書き込みもできないようにし、すべての要求にリフェラルを返すにはreferral-modeenabled に設定します。

  3. コマンドが正常に実行されるとすぐに、サフィックスは読み取り専用またはアクセス不可になり、リフェラルを返す準備ができます。

  4. (省略可能) サフィックスが使用できるようになったら、ふたたびサフィックスの読み書きができるようにリフェラルを無効にします。


    $ dsconf set-suffix-prop -h host -p port suffix-DN referral-mode:disabled

    リフェラルが無効になると、サフィックスの enabled プロパティーを off に設定してサフィックス自体を無効にしていない限り、サフィックスは自動的に読み書き可能になります。

サフィックスの削除

サフィックスを削除すると、DIT からそのエントリ全体が削除されます。


注 –

サフィックスを削除すると、ディレクトリからそのデータエントリすべてが完全に削除されます。レプリケーション設定を含むサフィックス設定情報もすべて削除されます。


親サフィックスを削除し、そのサブサフィックスを、DIT で新しいルートサフィックスとして保持することはできません。サブサフィックスを含むエントリ全体を削除する場合は、削除された親のサブサフィックスと考えられるサブサフィックスも削除します。

Procedureサフィックスを削除する

このタスクは DSCC を使用して実行することができます。詳細については、「Directory Service Control Center のインタフェース」および DSCC オンラインヘルプを参照してください。

  1. サフィックスの設定エントリを削除します。


    $ dsconf delete-suffix -h host -p port [subSuffix-DN] suffix-DN
    

    このコマンドによって、suffix-DN のベースエントリで始まるサフィックスがサーバーから削除されます。これで、サフィックスはディレクトリに表示されなくなり、アクセスできなくなります。

サフィックスの圧縮

Directory Server 6.3 では、オフラインでのサフィックスの圧縮がサポートされます。このリリースでは、オンラインでの圧縮はサポートされません。記憶領域を使用できる場合、サフィックスを圧縮すると、データベースキーが再構成されることによりデータベースのサイズが縮小されます。

Procedureサフィックスをオフラインで圧縮する

この手順を実行する前に、サーバーを停止してデータベースをバックアップしてください。

  1. 必要なサフィックスを圧縮します。


    $ dsadm repack instance-path suffix-dn
    

    指定したサフィックスに関連するすべての .db3 ファイルが圧縮されます。

    このコマンドに -b オプションを付けて実行すると、サフィックス DN の代わりにバックエンドデータベース名を指定できます。少なくとも 1 つのサフィックスまたはバックエンドを指定してください。