第 3 章 使用 novajoin 与 IdM 集成
novajoin 允许您在部署过程中使用 Red Hat Identity Manager (IdM)注册节点。因此,您可以将 IdM 功能与您的 OpenStack 部署集成,包括身份、kerberos 凭证和访问控制。
通过 novajoin 的 IdM 注册目前仅适用于 undercloud 和 overcloud 节点。overcloud 实例的 novajoin 集成应该在以后的版本中被支持。
3.1. 在 undercloud 中安装并配置 novajoin
3.1.1. 将 undercloud 添加到 CA
在部署 overcloud 之前,您必须将 undercloud 添加到证书颁发机构(CA)中:
在 undercloud 节点上,安装
python-novajoin
软件包:$ sudo yum install python-novajoin
在 undercloud 节点上,运行
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)注册 undercloud。
3.1.2. 将 undercloud 添加到 IdM
此流程使用 IdM 注册 undercloud,并配置 novajoin。在 undercloud.conf
中配置以下设置(在 [DEFAULT]
部分中):
默认情况下,禁用 novajoin 服务。启用它:
[DEFAULT] enable_novajoin = true
您需要设置一个一次性密码(OTP),以使用 IdM 注册 undercloud 节点:
ipa_otp = <otp>
确保 neutron 的 DHCP 服务器提供 overcloud 的域名与 IdM 域(您小写的 kerberos 域)匹配:
overcloud_domain_name = <domain>
为 undercloud 设置适当的主机名:
undercloud_hostname = <undercloud FQDN>
将 IdM 设置为 undercloud 的名称服务器:
undercloud_nameservers = <IdM IP>
对于较大的环境,您需要查看 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>
-
保存
undercloud.conf
文件。 运行 undercloud 部署命令,将更改应用到现有的 undercloud:
$ openstack undercloud install
验证
检查
keytab
文件是否有 undercloud 的密钥条目:[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
使用主机原则测试系统
/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
使用 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