2.8. Identity サービスの設定
以下のステップでは、IdM との統合に備えて、Identity サービスの準備を行います。
director を使用している場合には、以下で参照されている設定ファイルが Puppet によって管理されている点に注意してください。このため、openstack overcloud deploy プロセスを実行するたびに、自分で追加したカスタム設定が上書きされる可能性があります。これらの設定を director ベースのデプロイメントに適用するには、「4章director でのドメイン固有の LDAP バックエンドの使用」を参照してください。
2.8.1. コントローラーの設定 リンクのコピーリンクがクリップボードにコピーされました!
設定ファイルを更新する場合には、特定の OpenStack サービスはコンテナー内で実行されるようになったことを認識する必要があります。これは、keystone、nova、cinder などのサービスが対象です。そのため、考慮すべき特定の管理プラクティスがいくつかあります。
-
物理ノードのホストオペレーティングシステム上の設定ファイル (例:
/etc/cinder/cinder.conf) は更新しないでください。コンテナー化されたサービスはこのようなファイルを参照しません。 コンテナー内で実行されている設定ファイルは更新しないでください。コンテナーを再起動すると変更が失われてしまいます。
代わりに、コンテナー化されたサービスに変更を加える必要がある場合は、コンテナーの生成に使用される設定ファイルを更新する必要があります。これらのファイルは
/var/lib/config-data/puppet-generated/内に保管されています。以下に例を示します。
-
keystone:
/var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf -
cinder:
/var/lib/config-data/puppet-generated/cinder/etc/cinder/cinder.conf nova:
/var/lib/config-data/puppet-generated/nova/etc/nova/nova.conf変更内容は、コンテナーを再起動した後に適用されます。例:
sudo systemctl restart tripleo_keystone
keystone サービスを実行しているコントローラーで、以下の手順を実行します。
SELinux を設定します。
setsebool -P authlogin_nsswitch_use_ldap=on
# setsebool -P authlogin_nsswitch_use_ldap=onCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力には、以下のようなメッセージが含まれている場合がありますが、これは無視できます。
Full path required for exclude: net:[4026532245].
Full path required for exclude: net:[4026532245].Copy to Clipboard Copied! Toggle word wrap Toggle overflow domains ディレクトリーを作成します。
mkdir /var/lib/config-data/puppet-generated/keystone/etc/keystone/domains/ chown 42425:42425 /var/lib/config-data/puppet-generated/keystone/etc/keystone/domains/
# mkdir /var/lib/config-data/puppet-generated/keystone/etc/keystone/domains/ # chown 42425:42425 /var/lib/config-data/puppet-generated/keystone/etc/keystone/domains/Copy to Clipboard Copied! Toggle word wrap Toggle overflow Identity サービスが複数のバックエンドを使用するように設定します。
注記dnf install crudiniを使用してcrudiniをインストールする必要がある場合があります。crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf identity domain_specific_drivers_enabled true crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf identity domain_config_dir /etc/keystone/domains crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf assignment driver sql
# crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf identity domain_specific_drivers_enabled true # crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf identity domain_config_dir /etc/keystone/domains # crudini --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf assignment driver sqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記director を使用している場合には、
/var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.confが Puppet によって管理されている点に注意してください。このため、openstack overcloud deployプロセスを実行するたびに、自分で追加したカスタム設定が上書きされる可能性があります。上書きされた場合には、この設定を毎回手動で追加し直す必要がある場合があります。director ベースのデプロイメントについては、「4章director でのドメイン固有の LDAP バックエンドの使用」を参照してください。Dashboard で複数のドメインを有効にします。以下の行を /var/lib/config-data/puppet-generated/horizon/etc/openstack-dashboard/local_settings に追加します。
OPENSTACK_API_VERSIONS = { "identity": 3 } OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'OPENSTACK_API_VERSIONS = { "identity": 3 } OPENSTACK_KEYSTONE_MULTIDOMAIN_SUPPORT = True OPENSTACK_KEYSTONE_DEFAULT_DOMAIN = 'Default'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記director を使用している場合には、
/var/lib/config-data/puppet-generated/horizon/etc/openstack-dashboard/local_settingsが Puppet によって管理されている点に注意してください。このため、openstack overcloud deployプロセスを実行するたびに、自分で追加したカスタム設定が上書きされる可能性があります。上書きされた場合には、この設定を毎回手動で追加し直す必要がある場合があります。horizon コンテナーを再起動して、設定を適用します。
sudo systemctl restart tripleo_horizon
$ sudo systemctl restart tripleo_horizonCopy to Clipboard Copied! Toggle word wrap Toggle overflow 追加のバックエンドを設定します。
IdM 統合のための keystone ドメインを作成します。新規 keystone ドメインに使用する名前を決定してから、ドメインを作成する必要があります。たとえば、以下のコマンドは
LABという名前の keystone ドメインを作成します。openstack domain create LAB
$ openstack domain create LABCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドが使用できない場合には、コマンドラインセッションでの keystone v3 へのアクセスが有効化されているかどうかを確認してください。
設定ファイルを作成します。
IdM バックエンドを追加するには、
/var/lib/config-data/puppet-generated/keystone/etc/keystone/domains/keystone.LAB.conf(LABは、前のステップで作成したドメイン名に置き換えます) という名前の新規ファイルに LDAP 設定を入力します。以下の設定例は、実際に使用する IdM デプロイメントに合わせて編集する必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 各設定項目について説明します。
Expand 設定 説明 url認証に使用する IdM サーバー。LDAPS ポート
636を使用します。userLDAP クエリーに使用する IdM 内のアカウント。
password上記で使用した IdM アカウントのパスワード (プレーンテキスト形式)。
user_filterIdentity サービスに対して提示するユーザーをフィルタリングします。その結果、grp-openstack グループのメンバーのみに Identity サービスで定義されているパーミッションを付与することができます。
user_tree_dnIdM 内の OpenStack アカウントへのパス。
user_objectclassLDAP ユーザーの種別を定義します。IdM には
inetUserの種別を使用します。user_id_attributeユーザー ID に使用する IdM 値をマッピングします。
user_name_attributenames に使用する IdM 値をマッピングします。
user_mail_attributeユーザーのメールアドレスに使用する IdM 値をマッピングします。
user_pass_attributeこの値は空白のままにします。
注記IdM グループとの統合で返されるのは直接のメンバーだけで、ネスト化されたグループは返されません。したがって、
LDAP_MATCHING_RULE_IN_CHAINまたはmemberof:1.2.840.113556.1.4.1941:に依存するクエリーは、現在 IdM では機能しません。
設定ファイルの所有者を keystone ユーザーに変更します。
chown 42425:42425 /var/lib/config-data/puppet-generated/keystone/etc/keystone/domains/keystone.LAB.conf
# chown 42425:42425 /var/lib/config-data/puppet-generated/keystone/etc/keystone/domains/keystone.LAB.confCopy to Clipboard Copied! Toggle word wrap Toggle overflow admin ユーザーにドメインへのアクセス権を付与します。
注記この手順を実行しても、OpenStack admin アカウントには IdM のパーミッションは付与されません。ここで使われるドメインという用語は、OpenStack が使用する keystone ドメインのことを指しています。
LAB ドメインの
IDを取得します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow admin ユーザーの
IDの値を取得します。openstack user list --domain default | grep admin
$ openstack user list --domain default | grep admin | 3d75388d351846c6a880e53b2508172a | admin |Copy to Clipboard Copied! Toggle word wrap Toggle overflow admin ロールの
IDの値を取得します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 返されたドメインおよび admin の ID を使用して、keystone LAB ドメインの admin ロールに admin ユーザーを追加するコマンドを構築します。
openstack role add --domain 6800b0496429431ab1c4efbb3fe810d4 --user 3d75388d351846c6a880e53b2508172a 785c70b150ee4c778fe4de088070b4cf
$ openstack role add --domain 6800b0496429431ab1c4efbb3fe810d4 --user 3d75388d351846c6a880e53b2508172a 785c70b150ee4c778fe4de088070b4cfCopy to Clipboard Copied! Toggle word wrap Toggle overflow
keystone サービスを再起動して、変更を適用します。
sudo podman restart keystone
$ sudo podman restart keystoneCopy to Clipboard Copied! Toggle word wrap Toggle overflow コマンドで keystone ドメイン名を指定して、IdM ドメイン内のユーザー一覧を確認します。
openstack user list --domain LAB
$ openstack user list --domain LABCopy to Clipboard Copied! Toggle word wrap Toggle overflow ローカルの keystone データベース内のサービスアカウントを確認します。
openstack user list --domain default
$ openstack user list --domain defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow