3.5. 使用 Ansible 实现 TLS-e
您可以使用新的 tripleo-ipa
方法在 overcloud 端点上启用 SSL/TLS,在任何位置称为 TLS (TLS-e)。由于所需的证书数量,Red Hat OpenStack Platform 与 Red Hat Identity Management (IdM)集成。当您使用 tripleo-ipa
配置 TLS-e 时,IdM 是证书颁发机构。
先决条件
确保 undercloud 的所有配置步骤(如创建 stack 用户)已完成。如需了解更多详细信息,请参阅 Director 安装和使用 以了解更多详细信息
流程
使用以下步骤在 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
中设置 undercloud 上的适当的搜索域和名称服务器。例如,如果部署域是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 注意IdM 用户凭证必须是可添加新主机和服务的管理用户。
在 undercloud 上运行
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 部署 undercloud:
openstack undercloud install
openstack undercloud install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
通过完成以下步骤验证 undercloud 是否已正确注册:
列出 IdM 中的主机:
kinit admin ipa host-find
$ kinit admin $ ipa host-find
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确认 undercloud 上存在
/etc/novajoin/krb5.keytab
。ls /etc/novajoin/krb5.keytab
ls /etc/novajoin/krb5.keytab
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
novajoin
目录名称仅用于传统的命名目的。
在 overcloud 上配置 TLS-e
当您随处使用 TLS 部署 overcloud 时,来自 Undercloud 和 Overcloud 的 IP 地址将自动注册到 IdM。
在部署 overcloud 之前,创建一个 YAML 文件
tls-parameters.yaml
,其内容类似如下。您选择的值将特定于您的环境:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
OS::TripleO::Services::IpaClient
参数显示的值会覆盖enable-internal-tls.yaml
文件中的默认设置。您必须确保openstack overcloud deploy
命令中的tls-parameters.yaml
文件遵循enable-internal-tls.yaml
。 - 有关用来实现 TLS-e 的参数的更多信息,请参阅 tripleo-ipa 的参数。
-
部署 overcloud。您需要在部署命令中包含 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