Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

第3章 novajoin を使用した IdM との統合

novajoin により、使用するノードをデプロイメントプロセスの一部として Red Hat Identity Manager (IdM) に登録できます。その結果、OpenStack デプロイメントで、ID、kerberos 認証情報、アクセス制御などの IdM の機能を統合することができます。

注記

現在、novajoin を使用した IdM の登録は、アンダークラウドとオーバークラウドのノードのみで利用可能です。オーバークラウドインスタンス向けの novajoin の統合は、今後のリリースでサポートされる見込みです。

3.1. アンダークラウドでの novajoin のインストールと設定

3.1.1. CA へのアンダークラウドの追加

オーバークラウドをデプロイする前に、アンダークラウドを認証局 (CA) に追加する必要があります。

  1. アンダークラウドノードで、python-novajoin パッケージをインストールします。

    $ sudo yum install python-novajoin
  2. アンダークラウドノードで novajoin-ipa-setup スクリプトを実行します。値はデプロイメントに応じて調整します。

    $ sudo /usr/libexec/novajoin-ipa-setup \
        --principal admin \
        --password <IdM admin password> \
        --server <IdM server hostname> \
        --realm <overcloud cloud domain (in upper case)> \
        --domain <overcloud cloud domain> \
        --hostname <undercloud hostname> \
        --precreate

    以下の項では、ここで設定されたワンタイムパスワード (OTP) を使用してアンダークラウドを登録します。

3.1.2. IdM へのアンダークラウドの追加

以下の手順では、アンダークラウドを IdM に登録して novajoin を設定します。undercloud.conf で以下の設定を行います ([DEFAULT] セクション内)。

  1. novajoin サービスは、デフォルトで無効にされます。有効にするには、以下のように設定します。

    [DEFAULT]
    enable_novajoin = true
  2. アンダークラウドノードを IdM に登録するためのワンタイムパスワード (OTP) を設定する必要があります。

    ipa_otp = <otp>
  3. neutron の DHCP サーバーによって提供されるオーバークラウドのドメイン名が IdM ドメインと一致するようにします (小文字の kerberos レルム)。

    overcloud_domain_name = <domain>
  4. アンダークラウドに適切なホスト名を設定します。

    undercloud_hostname = <undercloud FQDN>
  5. アンダークラウドのネームサーバーとして IdM を設定します。

    undercloud_nameservers = <IdM IP>
  6. より大きな環境の場合には、novajoin の接続タイムアウト値を確認する必要があります。undercloud.conf で、undercloud-timeout.yaml という名前の新規ファイルへの参照を追加します。

    hieradata_override = /home/stack/undercloud-timeout.yaml

    undercloud-timeout.yaml に以下のオプションを追加します。タイムアウト値は秒単位で指定することができます (例: 5)。

    nova::api::vendordata_dynamic_connect_timeout: <timeout value>
    nova::api::vendordata_dynamic_read_timeout: <timeout value>
  7. undercloud.conf ファイルを保存します。
  8. アンダークラウドのデプロイコマンドを実行して、既存のアンダークラウドに変更を適用します。

    $ openstack undercloud install

検証

  1. keytab ファイルでアンダークラウドのキーエントリーを確認します。

     [root@undercloud-0 ~]# klist -kt
     Keytab name: FILE:/etc/krb5.keytab
     KVNO Timestamp           Principal
     ---- ------------------- ------------------------------------------------------
        1 04/28/2020 12:22:06 host/undercloud-0.redhat.local@REDHAT.LOCAL
        1 04/28/2020 12:22:06 host/undercloud-0.redhat.local@REDHAT.LOCAL
    
    
     [root@undercloud-0 ~]# klist -kt /etc/novajoin/krb5.keytab
     Keytab name: FILE:/etc/novajoin/krb5.keytab
     KVNO Timestamp           Principal
     ---- ------------------- ------------------------------------------------------
        1 04/28/2020 12:22:26 nova/undercloud-0.redhat.local@REDHAT.LOCAL
        1 04/28/2020 12:22:26 nova/undercloud-0.redhat.local@REDHAT.LOCAL
  2. ホストプリンシパルが含まれるシステム /etc/krb.keytab ファイルをテストします。

     [root@undercloud-0 ~]# kinit -k
     [root@undercloud-0 ~]# klist
     Ticket cache: KEYRING:persistent:0:0
     Default principal: host/undercloud-0.redhat.local@REDHAT.LOCAL
    
     Valid starting       Expires              Service principal
     05/04/2020 10:34:30  05/05/2020 10:34:30  krbtgt/REDHAT.LOCAL@REDHAT.LOCAL
    
     [root@undercloud-0 ~]# kdestroy
     Other credential caches present, use -A to destroy all
  3. nova プリンシパルが含まれる novajoin /etc/novajoin/krb.keytab ファイルをテストします。

     [root@undercloud-0 ~]# kinit -kt /etc/novajoin/krb5.keytab 'nova/undercloud-0.redhat.local@REDHAT.LOCAL'
     [root@undercloud-0 ~]# klist
     Ticket cache: KEYRING:persistent:0:0
     Default principal: nova/undercloud-0.redhat.local@REDHAT.LOCAL
    
     Valid starting       Expires              Service principal
     05/04/2020 10:39:14  05/05/2020 10:39:14  krbtgt/REDHAT.LOCAL@REDHAT.LOCAL