2장. heat 템플릿 이해
이 가이드의 사용자 지정 구성에서는 heat 템플릿 및 환경 파일을 사용하여 Overcloud의 특정 측면을 정의합니다. 이 장에서는 Red Hat OpenStack Platform director의 맥락에서 이러한 템플릿의 구조와 형식을 이해할 수 있도록 heat 템플릿에 대한 기본적인 소개를 제공합니다.
2.1. Heat 템플릿
director는 HOT(Heat Orchestration Templates)를 오버클라우드 배포 계획의 템플릿 형식으로 사용합니다. HOT 형식의 템플릿은 일반적으로 YAML 형식으로 표시됩니다. 템플릿의 목적은 OpenStack Orchestration(heat)에서 생성하는 리소스 컬렉션 및 리소스의 구성인 스택을 정의하고 생성하는 것입니다. 리소스는 RHOSP(Red Hat OpenStack Platform)의 개체이며 컴퓨팅 리소스, 네트워크 구성, 보안 그룹, 확장 규칙 및 사용자 지정 리소스를 포함할 수 있습니다.
Heat 템플릿에는 다음 세 가지 섹션이 있습니다.
- parameters
-
이러한 설정은 heat로 전달되며, 스택을 사용자 지정하는 방법과 전달된 값이 없는 매개 변수의 기본값을 제공합니다. 이러한 설정은 템플릿의
parameters
섹션에 정의되어 있습니다. - resources
-
resources
섹션을 사용하여 이 템플릿을 사용하여 스택을 배포할 때 생성할 수 있는 계산 인스턴스, 네트워크 및 스토리지 볼륨과 같은 리소스를 정의합니다. RHOSP(Red Hat OpenStack Platform)에는 모든 구성 요소에 걸쳐 있는 핵심 리소스 세트가 포함되어 있습니다. 이는 스택의 일부로 만들고 구성할 특정 오브젝트입니다. RHOSP에는 모든 구성 요소에 걸쳐 있는 핵심 리소스 세트가 포함되어 있습니다. 이러한 값은 템플릿의resources
섹션에 정의되어 있습니다. - 출력
-
outputs
섹션을 사용하여 스택을 만든 후 클라우드 사용자가 액세스할 수 있는 출력 매개 변수를 선언합니다. 클라우드 사용자는 이러한 매개 변수를 사용하여 배포된 인스턴스의 IP 주소 또는 스택의 일부로 배포된 웹 애플리케이션의 URL과 같은 스택에 대한 세부 정보를 요청할 수 있습니다.
기본 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
: cloud 사용자가 지정하는 특정 플레이버, 이미지 및 키를 사용하여 my_instance
라는 인스턴스를 만듭니다. 스택은 My Cirros Instance
라는 instance_name
값을 반환할 수 있습니다.
Heat에서 템플릿을 처리하면 템플릿의 스택과 리소스 템플릿의 하위 스택 세트를 생성합니다. 이렇게 하면 템플릿으로 정의한 기본 스택에서 내림되는 스택의 계층 구조가 생성됩니다. 다음 명령을 사용하여 스택 계층 구조를 볼 수 있습니다.
$ openstack stack list --nested