15.7. 准备环境文件并使用 novajoin 注册部署 overcloud
要使用 IdM 集成部署 overcloud,您可以创建和编辑环境文件,将 overcloud 配置为根据您在 overcloud 中定义的域使用自定义域参数 CloudDomain
和 CloudName
。然后,您可以使用所有环境文件以及部署所需的任何其他环境文件来部署 overcloud。
流程
创建
/usr/share/openstack-tripleo-heat-templates/environments/predictable-placement/custom-domain.yaml
环境文件的副本:$ cp /usr/share/openstack-tripleo-heat-templates/environments/predictable-placement/custom-domain.yaml \ /home/stack/templates/custom-domain.yaml
编辑
/home/stack/templates/custom-domain.yaml
环境文件,并设置CloudDomain
和CloudName
bang 值以适合您的部署:parameter_defaults: CloudDomain: lab.local CloudName: overcloud.lab.local CloudNameInternal: overcloud.internalapi.lab.local CloudNameStorage: overcloud.storage.lab.local CloudNameStorageManagement: overcloud.storagemgmt.lab.local CloudNameCtlplane: overcloud.ctlplane.lab.local
选择适合您的环境的 TLS 的实施:
使用
enable-tls.yaml
环境文件来保护带有自定义证书的外部端点:-
将
/usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-tls.yaml
复制到/home/stack/templates
。 -
修改
/home/stack/enable-tls.yaml
环境文件,使其包含您的自定义证书和密钥。 在部署中包含以下环境文件,以保护内部和外部端点:
- enable-internal-tls.yaml
- tls-every-endpoints-dns.yaml
- custom-domain.yaml
enable-tls.yaml
openstack overcloud deploy \ --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-internal-tls.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/tls-everywhere-endpoints-dns.yaml \ -e /home/stack/templates/custom-domain.yaml \ -e /home/stack/templates/enable-tls.yaml
-
将
使用
haproxy-public-tls-certmonger.yaml
环境文件来保护使用 IdM 发布的证书的外部端点。对于此实现,您必须为 novajoin 使用的 VIP 端点创建 DNS 条目:您必须为 novajoin 使用的 VIP 端点创建 DNS 条目。识别位于
'/home/stack/templates 的自定义 network-environment.yaml 文件中的
overcloud 网络:parameter_defaults: ControlPlaneDefaultRoute: 192.168.24.1 ExternalAllocationPools: - end: 10.0.0.149 start: 10.0.0.101 InternalApiAllocationPools: - end: 172.17.1.149 start: 172.17.1.10 StorageAllocationPools: - end: 172.17.3.149 start: 172.17.3.10 StorageMgmtAllocationPools: - end: 172.17.4.149 start: 172.17.4.10
在 heat 模板中为每个 overcloud 网络创建虚拟 IP 地址列表,例如
/home/stack/public_vip.yaml
。parameter_defaults: ControlFixedIPs: [{'ip_address':'192.168.24.101'}] PublicVirtualFixedIPs: [{'ip_address':'10.0.0.101'}] InternalApiVirtualFixedIPs: [{'ip_address':'172.17.1.101'}] StorageVirtualFixedIPs: [{'ip_address':'172.17.3.101'}] StorageMgmtVirtualFixedIPs: [{'ip_address':'172.17.4.101'}] RedisVirtualFixedIPs: [{'ip_address':'172.17.1.102'}]
根据需要,为每个 VIP 和区在 IdM 中添加 DNS 条目:
ipa dnsrecord-add lab.local overcloud --a-rec 10.0.0.101 ipa dnszone-add ctlplane.lab.local ipa dnsrecord-add ctlplane.lab.local overcloud --a-rec 192.168.24.101 ipa dnszone-add internalapi.lab.local ipa dnsrecord-add internalapi.lab.local overcloud --a-rec 172.17.1.101 ipa dnszone-add storage.lab.local ipa dnsrecord-add storage.lab.local overcloud --a-rec 172.17.3.101 ipa dnszone-add storagemgmt.lab.local ipa dnsrecord-add storagemgmt.lab.local overcloud --a-rec 172.17.4.101
在部署中包含以下环境文件,以保护内部和外部端点:
- enable-internal-tls.yaml
- tls-everywhere-endpoints-dns.yaml
- haproxy-public-tls-certmonger.yaml
- custom-domain.yaml
public_vip.yaml
openstack overcloud deploy \ --templates \ -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-internal-tls.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/ssl/tls-everywhere-endpoints-dns.yaml \ -e /usr/share/openstack-tripleo-heat-templates/environments/services/haproxy-public-tls-certmonger.yaml \ -e /home/stack/templates/custom-domain.yaml \ -e /home/stack/templates/public-vip.yaml
您不能使用 novajoin 在预先存在的部署(TLS-e)上随处实施 TLS。
其他资源