5.5. 使用 Ansible 实施 TLS-e
您可以使用新的 tripleo-ipa
方法在 overcloud 端点上启用 SSL/TLS,名为 TLS-e。由于所需的证书数量,Red Hat OpenStack Platform 与 Red Hat Identity Management (IdM)集成。当您使用 tripleo-ipa
配置 TLS-e 时,IdM 是证书颁发机构。
先决条件
- 确保完成 undercloud 的所有配置步骤,如创建 stack 用户。如需了解更多详细信息,请参阅 Director 安装和使用 以了解更多详细信息
DNS 服务器的 IP 地址在 undercloud 上配置为 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
中设置适当的搜索域和 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 在 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 [可选] 如果您的 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
部署 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 (TLS-e)部署 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