15.7. 환경 파일 준비 및 novajoin 등록으로 오버클라우드 배포

IdM 통합으로 오버클라우드를 배포하려면 환경 파일을 생성하고 편집하여 오버클라우드에 정의된 도메인에 따라 사용자 정의 도메인 매개변수 CloudDomainCloudName 을 사용하도록 오버클라우드를 구성하고 편집합니다. 그런 다음 배포에 필요한 모든 환경 파일과 함께 오버클라우드를 배포합니다.

절차

  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* 값을 설정합니다.

    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 파일에 있는 오버클라우드 네트워크를 식별합니다.

        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 템플릿에 각 오버클라우드 네트워크의 가상 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를 구현할 수 없습니다.