15.2. 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의 새로운 설치 또는 TLS-e로 구성하려는 기존 배포에 대해 TLS-e를 구현합니다. 사전 프로비저닝된 노드에 TLS-e를 사용하여 Red Hat OpenStack Platform을 배포하는 경우 이 방법을 사용해야 합니다.
기존 환경에 대해 TLS-e를 구현하는 경우 openstack undercloud install, openstack overcloud deploy 와 같은 명령을 실행해야 합니다. 이러한 절차는 멱등이며 업데이트된 템플릿 및 구성 파일과 일치하도록 기존 배포 구성만 조정합니다.
/etc/resolv.conf파일을 구성합니다./etc/resolv.conf의 언더클라우드에 적절한 검색 도메인과 이름 서버를 설정합니다. 예를 들어 배포 도메인이example.com이고 FreeIPA 서버의 도메인이bigcorp.com인 경우 /etc/resolv.conf에 다음 행을 추가합니다.search example.com bigcorp.com nameserver $IDM_SERVER_IP_ADDR필요한 소프트웨어를 설치합니다.
sudo dnf install -y python3-ipalib python3-ipaclient krb5-devel환경에 고유한 값을 사용하여 환경 변수를 내보냅니다.
export IPA_DOMAIN=bigcorp.com export IPA_REALM=BIGCORP.COM export IPA_ADMIN_USER=$IPA_USER export IPA_ADMIN_PASSWORD=$IPA_PASSWORD export IPA_SERVER_HOSTNAME=ipa.bigcorp.com export UNDERCLOUD_FQDN=undercloud.example.com export USER=stack export CLOUD_DOMAIN=example.com참고IdM 사용자 자격 증명은 새 호스트 및 서비스를 추가할 수 있는 관리자여야 합니다.
언더클라우드에서
undercloud-ipa-install.yamlansible 플레이북을 실행합니다.ansible-playbook \ --ssh-extra-args "-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" \ /usr/share/ansible/tripleo-playbooks/undercloud-ipa-install.yamlundercloud.conf에 다음 매개 변수를 추가합니다.
undercloud_nameservers = $IDM_SERVER_IP_ADDR overcloud_domain_name = example.com언더클라우드를 배포합니다.
openstack undercloud install
검증
다음 단계를 완료하여 언더클라우드가 올바르게 등록되었는지 확인합니다.
IdM에 호스트를 나열합니다.
$ kinit admin $ ipa host-find언더클라우드에
/etc/novajoin/krb5.keytab이 있는지 확인합니다.ls /etc/novajoin/krb5.keytab
novajoin 디렉터리 이름은 레거시 명명 목적으로만 사용됩니다.
오버클라우드에서 TLS-e 구성
TLS-e(TLS-e)를 사용하여 오버클라우드를 배포하면 Undercloud 및 Overcloud의 IP 주소가 IdM에 자동으로 등록됩니다.
자동 IP 주소 등록을 비활성화하려면 IDMModifyDNS heat 매개변수를 false로 설정합니다.
parameter_defaults:
....
IdMModifyDNS: false
오버클라우드를 배포하기 전에 다음과 유사한 내용을 사용하여 YAML 파일
tls-parameters.yaml을 생성합니다. 선택한 값은 환경에 따라 다릅니다.parameter_defaults: DnsSearchDomains: ["example.com"] DnsServers: ["192.168.1.13"] 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-
DnsServers매개 변수에는 IdM 서버의 IP 주소를 반영하는 값이 있어야 합니다. -
IdM 서버의 도메인이 클라우드 도메인과 다른 경우
DnsSearchDomains매개변수에 포함합니다. 예를 들면 다음과 같습니다.DnsSearchDomains: ["example.com", "bigcorp.com"] -
사전 프로비저닝된 노드가 있는 경우 오버클라우드 노드에 필요한 패키지를 설치하려면
IDMInstallClientPackages매개변수 값을true로 설정합니다. -
복제된 IdM 환경을 사용할 때
IdmServer매개변수에 대해 여러 쉼표로 구분된 값을 설정할 수 있습니다. IdM 복제본에 대한 자세한 내용은 IdM 복제본 설치를 참조하십시오. -
OS::TripleO::Services::IpaClient매개변수의 표시된 값은enable-internal-tls.yaml파일의 기본 설정을 재정의합니다.tls-parameters.yaml파일이openstack overcloud deploy명령에서enable-internal-tls.yaml을 따르는지 확인해야 합니다. -
cinder가 active-active로 구성된 DCN(분산 계산 노드) 아키텍처를 실행하는 경우
EnableEtcdInternalTLS매개변수를true로 추가하고 설정해야 합니다.
-
Overcloud를 배포합니다. 배포 명령에 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 \ ...끝점 목록에 대한 keystone을 쿼리하여 각 끝점이 HTTPS를 사용하고 있는지 확인합니다.
openstack endpoint list