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
와 같은 명령을 실행해야 합니다. 이러한 절차는 멱등이며 업데이트된 템플릿 및 구성 파일과 일치하도록 기존 배포 구성만 조정합니다.
/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 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
언더클라우드에서
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
undercloud.conf에 다음 매개변수를 추가합니다.
undercloud_nameservers = $IDM_SERVER_IP_ADDR overcloud_domain_name = example.com
[선택 사항] IPA 영역이 IPA 도메인과 일치하지 않는 경우
certmonger_krb_realm
매개변수 값을 설정합니다./home/stack/hiera_override.yaml
:에서certmonger_krb_realm
의 값을 설정합니다.parameter_defaults: certmonger_krb_realm: EXAMPLE.COMPANY.COM
undercloud.conf
의custom_env_files
매개변수 값을/home/stack/hiera_override.yaml
로 설정합니다.custom_env_files = /home/stack/hiera_override.yaml
언더클라우드를 배포합니다.
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)를 사용하여 TLS를 사용하여 오버클라우드를 배포하면 Undercloud 및 Overcloud의 IP 주소가 자동으로 IdM에 등록됩니다.
오버클라우드를 배포하기 전에 다음과 유사한 콘텐츠를 사용하여 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 의 매개변수를 참조하십시오.
-
[선택 사항] IPA 영역이 IPA 도메인과 일치하지 않는 경우
tls-parameters.yaml
파일에CertmongerKerberosRealm
매개변수 값을 포함해야 합니다.CertmongerKerberosRealm: EXAMPLE.COMPANY.COM
오버클라우드를 배포합니다. 배포 명령에 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