5.5. Ansible을 사용하여 TLS-e 구현


새로운 tripleo-ipa 방법을 사용하여 TLS(TLS-e)라는 오버클라우드 끝점에서 SSL/TLS를 활성화할 수 있습니다. Red Hat OpenStack Platform은 필요한 인증서 수로 인해 Red Hat IdM(Identity Management)과 통합됩니다. tripleo-ipa 를 사용하여 TLS-e를 구성할 때 IdM은 인증 기관입니다.

사전 요구 사항

  • stack 사용자 생성과 같은 언더클라우드의 모든 설정 단계가 완료되었는지 확인합니다. 자세한 내용은 director를 사용하여 Red Hat OpenStack Platform 설치 및 관리를 참조하십시오.
  • DNS 서버의 IP 주소는 언더클라우드에 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 와 같은 명령을 실행해야 합니다. 이러한 절차는 멱등이며 업데이트된 템플릿 및 구성 파일과 일치하도록 기존 배포 구성만 조정합니다.

  1. /etc/resolv.conf 파일을 구성합니다.

    /etc/resolv.conf 의 언더클라우드에 적절한 검색 도메인과 네임서버를 설정합니다. 예를 들어 배포 도메인이 example.com 이고 FreeIPA 서버의 도메인이 bigcorp.com 인 경우 /etc/resolv.conf에 다음 행을 추가합니다.

    search example.com bigcorp.com
    nameserver $IDM_SERVER_IP_ADDR
  2. 필요한 소프트웨어를 설치합니다.

    sudo dnf install -y python3-ipalib python3-ipaclient krb5-devel
  3. 환경과 관련된 값으로 환경 변수를 내보냅니다.

    export IPA_DOMAIN=bigcorp.com
    export IPA_REALM=BIGCORP.COM
    export IPA_ADMIN_USER=$IPA_USER 1
    export IPA_ADMIN_PASSWORD=$IPA_PASSWORD 2
    export IPA_SERVER_HOSTNAME=ipa.bigcorp.com
    export UNDERCLOUD_FQDN=undercloud.example.com 3
    export USER=stack
    export CLOUD_DOMAIN=example.com
    1 2
    IdM 사용자 인증 정보는 새 호스트 및 서비스를 추가할 수 있는 관리자입니다.
    3
    UNDERCLOUD_FQDN 매개변수의 값은 /etc/hosts 의 첫 번째 hostname-to-IP 주소 매핑과 일치합니다.
  4. 언더클라우드에서 undercloud-ipa-install.yaml ansible 플레이북을 실행합니다.

    ansible-playbook \
    --ssh-extra-args "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \
    /usr/share/ansible/tripleo-playbooks/undercloud-ipa-install.yaml
  5. undercloud.conf에 다음 매개변수를 추가합니다.

    undercloud_nameservers = $IDM_SERVER_IP_ADDR
    overcloud_domain_name = example.com
  6. [선택 사항] IPA 영역이 IPA 도메인과 일치하지 않는 경우 certmonger_krb_realm 매개변수 값을 설정합니다.

    1. /home/stack/hiera_override.yaml:에서 certmonger_krb_realm 의 값을 설정합니다.

      parameter_defaults:
        certmonger_krb_realm: EXAMPLE.COMPANY.COM
    2. undercloud.confcustom_env_files 매개변수 값을 /home/stack/hiera_override.yaml 로 설정합니다.

      custom_env_files = /home/stack/hiera_override.yaml
  7. 언더클라우드를 배포합니다.

    openstack undercloud install

검증

다음 단계를 완료하여 언더클라우드가 올바르게 등록되어 있는지 확인합니다.

  1. IdM의 호스트를 나열합니다.

    $ kinit admin
    $ ipa host-find
  2. /etc/novajoin/krb5.keytab 이 언더클라우드에 있는지 확인합니다.

    ls /etc/novajoin/krb5.keytab
참고

novajoin 디렉터리 이름은 레거시 이름 지정 목적으로만 사용됩니다.

오버클라우드에서 TLS-e 구성

TLS-e(TLS-e)를 사용하여 TLS를 사용하여 오버클라우드를 배포하면 Undercloud 및 Overcloud의 IP 주소가 자동으로 IdM에 등록됩니다.

  1. 오버클라우드를 배포하기 전에 다음과 유사한 콘텐츠를 사용하여 YAML 파일 tls-parameters.yaml 을 생성합니다. 선택한 값은 환경에 따라 다릅니다.

    parameter_defaults:
        DnsSearchDomains: ["example.com"]
        CloudDomain: example.com
        CloudName: overcloud.example.com
        CloudNameInternal: overcloud.internalapi.example.com
        CloudNameStorage: overcloud.storage.example.com
        CloudNameStorageManagement: overcloud.storagemgmt.example.com
        CloudNameCtlplane: overcloud.ctlplane.example.com
        IdMServer: freeipa-0.redhat.local
        IdMDomain: redhat.local
        IdMInstallClientPackages: False
    
    resource_registry:
          OS::TripleO::Services::IpaClient: /usr/share/openstack-tripleo-heat-templates/deployment/ipa/ipaservices-baremetal-ansible.yaml
    • OS::TripleO::Services::IpaClient 매개변수의 표시된 값은 enable-internal-tls.yaml 파일의 기본 설정을 재정의합니다. openstack overcloud deploy 명령에서 tls-parameters.yaml 파일이 enable-internal-tls.yaml 파일을 사용해야 합니다.
    • TLS-e를 구현하는 데 사용하는 매개변수에 대한 자세한 내용은 tripleo-ipa 의 매개변수를 참조하십시오.
  2. [선택 사항] IPA 영역이 IPA 도메인과 일치하지 않는 경우 tls-parameters.yaml 파일에 CertmongerKerberosRealm 매개변수 값을 포함해야 합니다.

        CertmongerKerberosRealm: EXAMPLE.COMPANY.COM
  3. 오버클라우드를 배포합니다. 배포 명령에 tls-parameters.yaml을 포함해야 합니다.

    DEFAULT_TEMPLATES=/usr/share/openstack-tripleo-heat-templates/
    CUSTOM_TEMPLATES=/home/stack/templates
    
    openstack overcloud deploy \
    -e ${DEFAULT_TEMPLATES}/environments/ssl/tls-everywhere-endpoints-dns.yaml \
    -e ${DEFAULT_TEMPLATES}/environments/services/haproxy-public-tls-certmonger.yaml \
    -e ${DEFAULT_TEMPLATES}/environments/ssl/enable-internal-tls.yaml \
    -e ${CUSTOM_TEMPLATES}/tls-parameters.yaml \
    ...
  4. 끝점 목록에 대해 keystone을 쿼리하여 각 끝점이 HTTPS를 사용하고 있는지 확인합니다.

    openstack endpoint list
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.