39.2. ipa migrate-ds の使用例

データの移行は ipa migrate-ds コマンドで行います。一番単純な例では移行するディレクトリーの LDAP URL を取得し、共通デフォルト設定をもとにデータをエクスポートします。
ipa migrate-ds ldap://ldap.example.com:389
移行済みのエントリー
migrate-ds コマンドは、posixAccount おbぬジェクトクラスに必要な gidNumber 属性と、person オブジェクトクラスに必要な sn 属性を含むアカウントのみを移行します。
プロセスのカスタマイズ
ipa migrate-ds コマンドは、データを特定してエクスポートする方法をカスタマイズすることができます。元のディレクトリーツリーがユニークな構造である場合や、エントリー内のエントリーや属性を除外すべき場合に便利です。詳しい情報は、コマンドに --help を指定してください。
バインド DN
デフォルトでは、DN "cn=Directory Manager" iを使用して、リモートの LDAP ディレクトリーにバインドします。--bind-dn オプションをコマンドに渡して、カスタムのバインド DN を指定します。詳細情報は、「移行ツール」を参照してください。
ネーミングコンテキストの変更
Directory Server のネーミングコンテキストが Identity Management で使用するものとは異なる場合には、オブジェクトのベース DNs は変換されます。たとえば、uid=user,ou=people,dc=ldap,dc=example,dc=comuid=user,ou=people,dc=idm,dc=example,dc=com に移行します。--base-dnipa migrate-ds コマンドに渡して、移行用にリモートの LDAP サーバーで使用するベース DN を設定します。

39.2.1. 特定のサブツリーの移行

デフォルトのディレクトリー構造の場合、人のエントリーは ou=People サブツリーに配置されグループのエントリーは ou=Groups サブツリーに配置されます。こうしたサブツリーは異なるタイプのディレクトリーデータ用のコンテナーエントリーになります。 migrate-ds に何もオプションを渡さないとユーティリティーは指定 LDAP ディレクトリーでは ou=Peopleou=Groups の構造が使用されると仮定します。
多くのデプロイメントは完全に異なるディレクトリー構造をしている場合があります (またディレクトリーツリーの特定部分のみをエクスポートする場合もあります)。管理者は、2 種の方法で、ソースの LDAP サーバー上のグループサブツリーや異なるユーザーの RDN を指定できます。
  • --user-container
  • --group-container

注記

いずれの場合もサブツーを RDN のみにしてベース DN に相対的にする必要があります。たとえば、>ou=Employees,dc=example,dc=com ディレクトリーツリーは --user-container=ou=Employees を使用して移行できます。
以下に例を示します。
[root@ipaserver ~]# ipa migrate-ds --user-container=ou=employees \
                        --group-container="ou=employee groups" \
			ldap://ldap.example.com:389
--scope オプションを ipa migrate-ds コマンドに渡して、スコープを設定します。
  • onelevel: デフォルト。指定のコンテナーのエントリーのみが移行されます。
  • subtree: 指定のコンテナーおよびすべてのサブコンテナーに含まれるエントリーが移行されます。
  • base: 指定したオブジェクト自体が移行されます。

39.2.2. 特定のエントリーのみを包含および除外

デフォルトでは ipa migrate-ds スクリプトは、person オブジェクトクラスで全ユーザーエントリーを、groupOfUniqueNames または groupOfNames オブジェクトクラスで全グループエントリーをインポートします。
一部の移行パスでは特定のユーザータイプやグループタイプのみをエクスポートする必要がある場合、逆にエクスポートから除外する必要がある場合があります。
オプションの 1 つとして、追加するユーザーやグループの タイプ を設定する方法があります。これは、ユーザーまたはグループエントリーの検索時に特定するオブジェクトクラスを設定することで、タイプの設定が可能です。
異なるユーザータイプにカスタムのオブジェクトクラスが使用されている環境では非常に便利なオプションです。たとえば、このオプションによりカスタムの fullTimeEmployee オブジェクトクラスの付いたユーザーのみを移行します。
[root@ipaserver ~]# ipa migrate-ds --user-objectclass=fullTimeEmployee ldap://ldap.example.com:389
グループのタイプが異なる場合にも、特定のグループタイプのみを移行し、証明書グループなど他のグループタイプは除外することができ非常に便利なオプションになります。以下に例を示します。
[root@ipaserver ~]# ipa migrate-ds --group-objectclass=groupOfNames --group-objectclass=groupOfUniqueNames ldap://ldap.example.com:389
オブジェクトクラスに応じて移行するユーザーとグループを指定するということは暗示的にそれ以外のユーザーおよびグループはすべて移行から除外するということになります。
また、ごく少数のエントリー以外、すべてのユーザーとグループのエントリーを移行する場合にも便利です。特定のユーザーまたはグループのアカウントを除外する一方、そのタイプの他のエントリーはすべて移行することができます。以下に趣味のグループと 2 人のユーザーを除外している例を示します。
[root@ipaserver ~]# ipa migrate-ds --exclude-groups="Golfers Group" --exclude-users=jsmith --exclude-users=bjensen ldap://ldap.example.com:389
除外のステートメントは、uid のパターンに一致するユーザーと、cn 属性に一致するグループに適用されます。
移行オブジェクトクラスの指定と特定エントリーの除外は併用することができます。たとえば、fullTimeEmployee オブジェクトクラスを持つユーザーを移行に含め 3 人のマネージャーは除外する例を以下に示します。
[root@ipaserver ~]# ipa migrate-ds --user-objectclass=fullTimeEmployee --exclude-users=jsmith --exclude-users=bjensen --exclude-users=mreynolds ldap://ldap.example.com:389

39.2.3. エントリー属性の除外

デフォルトではユーザーやグループエントリーのすべての属性とオブジェクトクラスが移行されますが、帯域幅やネットワーク上に制約があったり、属性データの適正性が失われた場合など現実に即しない場合があります。たとえば、IdM ドメインに参加させるためユーザーには新規のユーザー証明書を割り当てる予定の場合には userCertificate 属性を移行する意味はなくなります。
特定のオブジェクトクラスや属性を migrate-ds にいくつかのオプションを使って無視させることができます。
  • --user-ignore-objectclass
  • --user-ignore-attribute
  • --group-ignore-objectclass
  • --group-ignore-attribute
ユーザーの userCertificate 属性と strongAuthenticationUser オブジェクトクラスおよびグループの groupOfCertificates オブジェクトクラスを除外する例を以下に示します。
[root@ipaserver ~]# ipa migrate-ds --user-ignore-attribute=userCertificate --user-ignore-objectclass=strongAuthenticationUser --group-ignore-objectclass=groupOfCertificates ldap://ldap.example.com:389

注記

必要な属性が無視されていないか必ず確認します。また、オブジェクトクラスを除外する場合、そのオブジェクトクラスでしか対応しない属性はすべて除外するようにしてください。

39.2.4. 使用するスキーマの設定

Identity Management は RFC2307bis スキーマを使用して、ユーザー、ホスト、ホストグループ、ネットワーク ID を定義します。ただし、移行元として使用する LDAP サーバーが RFC2307 スキーマを使用する場合には、--schema オプションを ipa migrate-ds コマンドに渡します。
[root@ipaserver ~]# ipa migrate-ds --schema=RFC2307 ldap://ldap.example.com:389