5.5. Ansible を使用した TLS-e の実装
新しい tripleo-ipa
メソッドを使用して、どこでも TLS (TLS-e) と呼ばれるオーバークラウドエンドポイントで SSL/TLS を有効にすることができます。必要な証明書の数が多いため、Red Hat OpenStack Platform は Red Hat Identity Management (IdM) と統合されています。tripleo-ipa
を使用して TLS-e を設定する場合、IdM が認証局です。
前提条件
- stack ユーザーの作成など、アンダークラウドの設定手順がすべて完了していること。詳細は、director を使用した Red Hat OpenStack Platform のインストールおよび管理 を参照してください。
DNS サーバーの IP アドレスは、アンダークラウド上で IdM サーバーの IP アドレスに設定されます。以下のパラメーターのいずれかを
undercloud.conf
ファイルに設定する必要があります。-
DEFAULT/undercloud_nameservers
-
%SUBNET_SECTION%/dns_nameservers
-
手順
次の手順で、Red Hat OpenStack Platform の新規インストール、または TLS-e で設定する既存のデプロイメントに TLS-e を実装します。事前にプロビジョニングされたノードに TLS-e を設定した Red Hat OpenStack Platform をデプロイする場合は、この方式を使用する必要があります。
既存の環境に TLS-e を実装している場合は、openstack undercloud install
や openstack overcloud deploy
などのコマンドを実行する必要があります。これらの手順はべき等性を持ち、更新されたテンプレートおよび設定ファイルと一致するように既存のデプロイメント設定を調整するだけです。
/etc/resolv.conf
ファイルを設定します。アンダークラウドの
/etc/resolv.conf
に、適切な検索ドメインおよびネームサーバーを設定します。たとえば、デプロイメントドメインがexample.com
で FreeIPA サーバーのドメインがbigcorp.com
の場合、以下の行を /etc/resolv.conf に追加します。search example.com bigcorp.com nameserver $IDM_SERVER_IP_ADDR
search example.com bigcorp.com nameserver $IDM_SERVER_IP_ADDR
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要なソフトウェアをインストールします。
sudo dnf install -y python3-ipalib python3-ipaclient krb5-devel
sudo dnf install -y python3-ipalib python3-ipaclient krb5-devel
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ご自分の環境に固有の値で環境変数をエクスポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドで
undercloud-ipa-install.yaml
Ansible Playbook を実行します。ansible-playbook \ --ssh-extra-args "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \ /usr/share/ansible/tripleo-playbooks/undercloud-ipa-install.yaml
ansible-playbook \ --ssh-extra-args "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \ /usr/share/ansible/tripleo-playbooks/undercloud-ipa-install.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow undercloud.conf に以下のパラメーターを追加します。
undercloud_nameservers = $IDM_SERVER_IP_ADDR overcloud_domain_name = example.com
undercloud_nameservers = $IDM_SERVER_IP_ADDR overcloud_domain_name = example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow [オプション] IPA レルムが IPA ドメインと一致しない場合は、
certmonger_krb_realm
パラメーターの値を設定します。/home/stack/hiera_override.yaml
でcertmonger_krb_realm
の値を設定します。parameter_defaults: certmonger_krb_realm: EXAMPLE.COMPANY.COM
parameter_defaults: certmonger_krb_realm: EXAMPLE.COMPANY.COM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow undercloud.conf
でcustom_env_files
パラメーターの値を/home/stack/hiera_override.yaml
に設定します。custom_env_files = /home/stack/hiera_override.yaml
custom_env_files = /home/stack/hiera_override.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
アンダークラウドをデプロイします。
openstack undercloud install
openstack undercloud install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
以下の手順を実施して、アンダークラウドが正しく登録されたことを確認します。
IdM のホストをリスト表示します。
kinit admin ipa host-find
$ kinit admin $ ipa host-find
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アンダークラウドに
/etc/novajoin/krb5.keytab
が存在することを確認します。ls /etc/novajoin/krb5.keytab
ls /etc/novajoin/krb5.keytab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
novajoin
というディレクトリー名は、従来の方式に対応させる目的でのみ使用されています。
オーバークラウドでの TLS-e の設定
TLS everywhere (TLS-e) を設定したオーバークラウドをデプロイする場合、アンダークラウドおよびオーバークラウドの IP アドレスは自動的に IdM に登録されます。
オーバークラウドをデプロイする前に、以下のような内容で YAML ファイル
tls-parameters.yaml
を作成します。お使いの環境に固有の値を選択してください。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OS::TripleO::Services::IpaClient
パラメーターに示す値は、enable-internal-tls.yaml
ファイルのデフォルト設定を上書きします。openstack overcloud deploy
コマンドで、enable-internal-tls.yaml
の後にtls-parameters.yaml
ファイルを指定するようにします。 - TLS-e の実装に使用するパラメーターの詳細は、tripleo-ipa のパラメーター を参照してください。
-
[オプション] IPA レルムが IPA ドメインと一致しない場合は、
tls-parameters.yaml
ファイルにCertmongerKerberosRealm
パラメーターの値も含める必要があります。CertmongerKerberosRealm: EXAMPLE.COMPANY.COM
CertmongerKerberosRealm: EXAMPLE.COMPANY.COM
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オーバークラウドをデプロイする。デプロイメントコマンドに tls-parameters.yaml を追加する必要があります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow keystone にエンドポイントリストのクエリーを行い、各エンドポイントが HTTPS を使用していることを確認します。
openstack endpoint list
openstack endpoint list
Copy to Clipboard Copied! Toggle word wrap Toggle overflow