15.7. 准备环境文件并使用 novajoin 注册部署 overcloud

要使用 IdM 集成部署 overcloud,您可以创建和编辑环境文件,将 overcloud 配置为根据您在 overcloud 中定义的域使用自定义域参数 CloudDomainCloudName。然后,您可以使用所有环境文件以及部署所需的任何其他环境文件来部署 overcloud。

流程

  1. 创建 /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
  2. 编辑 /home/stack/templates/custom-domain.yaml 环境文件,并设置 CloudDomainCloudName 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
  3. 选择适合您的环境的 TLS 的实施:

    • 使用 enable-tls.yaml 环境文件来保护带有自定义证书的外部端点:

      1. /usr/share/openstack-tripleo-heat-templates/environments/ssl/enable-tls.yaml 复制到 /home/stack/templates
      2. 修改 /home/stack/enable-tls.yaml 环境文件,使其包含您的自定义证书和密钥。
      3. 在部署中包含以下环境文件,以保护内部和外部端点:

        • 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 条目:

      1. 您必须为 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
      2. 在 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'}]
      3. 根据需要,为每个 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
      4. 在部署中包含以下环境文件,以保护内部和外部端点:

        • 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。