Red Hat Training

A Red Hat training course is available for Red Hat OpenStack Platform

2장. Heat 템플릿 이해

이 가이드의 사용자 지정 구성은 Heat 템플릿 및 환경 파일을 사용하여 Overcloud의 특정 측면을 정의합니다. 이 장에서는 Heat 템플릿에 대한 기본적인 소개를 통해 Red Hat OpenStack Platform director의 맥락에서 이러한 템플릿의 구조와 형식을 이해할 수 있습니다.

2.1. Heat 템플릿

RHOSP(Red Hat OpenStack Platform) director는 HOT(Heat Orchestration Templates)를 오버클라우드 배포 계획의 템플릿 형식으로 사용합니다. HOT 형식의 템플릿은 일반적으로 YAML 형식으로 표시됩니다. 템플릿의 목적은 heat에서 생성하는 리소스 컬렉션과 리소스의 구성인 스택을 정의하고 생성하는 것입니다. 리소스는 RHOSP의 개체이며 컴퓨팅 리소스, 네트워크 구성, 보안 그룹, 확장 규칙 및 사용자 지정 리소스를 포함할 수 있습니다.

참고

RHOSP에서 heat 템플릿 파일을 사용자 지정 템플릿 리소스로 사용하려면 파일 확장자가 .yaml 또는. template 이어야 합니다.

Heat 템플릿에는 세 가지 주요 섹션이 있습니다.

매개 변수
이러한 설정은 heat로 전달되어 스택을 사용자 지정합니다. heat 매개변수를 사용하여 기본값을 사용자 지정할 수도 있습니다. 이러한 설정은 템플릿의 parameters 섹션에 정의되어 있습니다.
Resources
이는 스택의 일부로 만들고 구성할 특정 오브젝트입니다. RHOSP(Red Hat OpenStack Platform)에는 모든 구성 요소에 걸쳐 있는 핵심 리소스 세트가 포함되어 있습니다. 이러한 값은 템플릿의 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