4.3. 로드 밸런싱을 위한 SSL 구성
Overcloud는 기본적으로 서비스에 암호화되지 않은 엔드포인트를 사용합니다. 즉, Overcloud 구성에 엔드포인트에 대해 SSL/TLS를 활성화하려면 추가 환경 파일이 필요합니다.
외부 로드 밸런서에 SSL 인증서 및 키의 사본이 설치되어 있는지 확인합니다.
Heat 템플릿 컬렉션에서 enable-tls.yaml 환경 파일을 복사합니다.
cp -r /usr/share/openstack-tripleo-heat-templates/environments/enable-tls.yaml ~/templates/.
$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/enable-tls.yaml ~/templates/.
이 파일을 편집하고 다음을 수행합니다.
-
parameter_defaults섹션에서SSLCertificate,SSLIntermediateCertificate및SSLKey를 제거합니다. -
resource_registry섹션을 완전히 제거합니다. 남은 것은
parameter_defaults의EndpointMap매개변수입니다.EndpointMap에는 HTTPS 및 HTTP 통신을 사용하는 서비스 매핑이 포함되어 있습니다. SSL 통신에 DNS를 사용하는 경우 이 섹션을 기본값으로 둡니다. 그러나 SSL 인증서의 일반 이름에 IP 주소를 사용하는 경우CLOUDNAME의 모든 인스턴스를IP_ADDRESS로 바꿉니다. 이 작업을 수행하려면 다음 명령을 사용합니다.sed -i 's/CLOUDNAME/IP_ADDRESS/' ~/templates/enable-tls.yaml
$ sed -i 's/CLOUDNAME/IP_ADDRESS/' ~/templates/enable-tls.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 중요실제 값은
IP_ADDRESS또는CLOUDNAME을 대체하지 마십시오. Heat는 오버클라우드 생성 중에 이러한 변수를 적절한 값으로 바꿉니다.
자체 서명된 인증서 또는 인증서 서명자가 Overcloud 이미지의 기본 신뢰 저장소에 없는 경우 인증서를 Overcloud 이미지에 삽입합니다. Heat 템플릿 컬렉션에서 inject-trust-anchor.yaml 환경 파일을 복사합니다.
cp -r /usr/share/openstack-tripleo-heat-templates/environments/inject-trust-anchor.yaml ~/templates/.
$ cp -r /usr/share/openstack-tripleo-heat-templates/environments/inject-trust-anchor.yaml ~/templates/.
이 파일을 편집하고 이러한 매개변수에 대해 다음과 같이 변경합니다.
- SSLRootCertificate
루트 인증 기관 파일의 내용을
SSLRootCertificate매개변수에 복사합니다. 예를 들면 다음과 같습니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 중요인증 기관 콘텐츠에는 모든 새 행에 대해 동일한 들여쓰기 수준이 필요합니다.
- OS::TripleO::NodeTLSCAData
OS::TripleO::NodeTLSCAData:의 리소스 URL을 절대 URL로 변경합니다.resource_registry: OS::TripleO::NodeTLSCAData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/ca-inject.yamlresource_registry: OS::TripleO::NodeTLSCAData: /usr/share/openstack-tripleo-heat-templates/puppet/extraconfig/tls/ca-inject.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
DNS 호스트 이름을 사용하여 SSL/TLS를 통해 Overcloud에 액세스하는 경우 새 환경 파일(~/templates/cloudname.yaml)을 생성하여 Overcloud 엔드포인트의 호스트 이름을 정의합니다. 다음 매개변수를 사용합니다.
- CloudName
- Overcloud 엔드포인트의 DNS 호스트 이름입니다.
- DnsServers
- 사용할 DNS 서버 목록입니다. 구성된 DNS 서버에는 공용 API의 IP와 일치하는 구성된 CloudName 항목이 포함되어야 합니다.
다음은 이 파일의 내용 예입니다.
parameter_defaults: CloudName: overcloud.example.com DnsServers: 10.0.0.1
parameter_defaults:
CloudName: overcloud.example.com
DnsServers: 10.0.0.1
4.4절. “오버클라우드 생성” 의 배포 명령(openstack overcloud deploy)은 -e 옵션을 사용하여 환경 파일을 추가합니다. 다음 순서로 이 섹션의 환경 파일을 추가합니다.
-
SSL/TLS를 활성화하는 환경 파일(
enable-tls.yaml) -
DNS 호스트 이름을 설정하는 환경 파일 (
cloudname.yaml) -
루트 인증 기관을 삽입할 환경 파일(
inject-trust-anchor.yaml)
예를 들면 다음과 같습니다.
openstack overcloud deploy --templates [...] -e /home/stack/templates/enable-tls.yaml -e ~/templates/cloudname.yaml -e ~/templates/inject-trust-anchor.yaml
$ openstack overcloud deploy --templates [...] -e /home/stack/templates/enable-tls.yaml -e ~/templates/cloudname.yaml -e ~/templates/inject-trust-anchor.yaml