2장. Heat 템플릿 이해
이 가이드의 사용자 지정 구성에서는 Heat 템플릿 및 환경 파일을 사용하여 Overcloud의 특정 측면을 정의합니다. 이 장에서는 Heat 템플릿에 대한 기본 소개를 제공하므로 Red Hat OpenStack Platform director의 컨텍스트에서 이러한 템플릿의 구조와 형식을 이해할 수 있습니다.
2.1. Heat 템플릿
director는 HOT(Heat Orchestration Templates)를 Overcloud 배포 계획의 템플릿 형식으로 사용합니다. DestinationRule 형식의 템플릿은 대부분 YAML 형식으로 표시됩니다. 템플릿의 목적은 heat가 생성하는 리소스 컬렉션 및 리소스 구성인 스택 을 정의하고 생성하는 것입니다. 리소스는 OpenStack의 오브젝트이며 컴퓨팅 리소스, 네트워크 구성, 보안 그룹, 스케일링 규칙 및 사용자 정의 리소스를 포함할 수 있습니다.
Heat 템플릿의 구조에는 세 가지 주요 섹션이 있습니다.
- 매개 변수
-
이러한 설정은 heat에 전달됩니다. 이 설정은 스택을 사용자 지정하는 방법과 전달된 값 없이 매개변수의 기본값을 제공하는 설정입니다. 이러한 값은 템플릿의
parameters
섹션에 정의되어 있습니다. - Resources
-
이러한 오브젝트는 스택의 일부로 생성하고 구성할 특정 오브젝트입니다. OpenStack에는 모든 구성 요소에 걸쳐 있는 핵심 리소스 세트가 포함되어 있습니다. 이러한 값은 템플릿의
resources
섹션에 정의되어 있습니다. - 출력 결과
-
이는 스택 생성 후 heat에서 전달된 값입니다. heat API 또는 클라이언트 도구를 통해 이러한 값에 액세스할 수 있습니다. 이러한 값은 템플릿의
output
섹션에 정의되어 있습니다.
다음은 기본 heat 템플릿의 예입니다.
heat_template_version: 2013-05-23 description: > A very basic Heat template. parameters: key_name: type: string default: lars description: Name of an existing key pair to use for the instance flavor: type: string description: Instance type for the instance to be created default: m1.small image: type: string default: cirros description: ID or name of the image to use for the instance resources: my_instance: type: OS::Nova::Server properties: name: My Cirros Instance image: { get_param: image } flavor: { get_param: flavor } key_name: { get_param: key_name } output: instance_name: description: Get the instance's name value: { get_attr: [ my_instance, name ] }
이 템플릿은 리소스 유형인 OS::Nova::Server
를 사용하여 특정 플레이버, 이미지 및 키가 있는 my_instance
라는 인스턴스를 생성합니다. 스택은 My Cirros Instance
라고 하는 instance_name
의 값을 반환할 수 있습니다.
Heat에서 템플릿을 처리할 때 템플릿의 스택과 리소스 템플릿의 하위 스택 세트를 생성합니다. 이렇게 하면 템플릿으로 정의한 기본 스택에서 종료되는 스택 계층이 생성됩니다. 다음 명령을 사용하여 스택 계층을 볼 수 있습니다.
$ openstack stack list --nested