5장. 오케스트레이션
RHOSP(Red Hat OpenStack Platform) director는 오버클라우드 배포 계획의 템플릿 형식으로 HOT(Heat Orchestration Templates)를 사용합니다. HOT 형식의 템플릿은 일반적으로 YAML 형식으로 표시됩니다. 템플릿의 목적은 heat가 생성하는 리소스 컬렉션 및 리소스 구성인 스택 을 정의하고 생성하는 것입니다. 리소스는 RHOSP의 오브젝트이며 컴퓨팅 리소스, 네트워크 구성, 보안 그룹, 스케일링 규칙 및 사용자 정의 리소스를 포함할 수 있습니다.
RHOSP에서 heat 템플릿 파일을 사용자 지정 템플릿 리소스로 사용하려면 파일 확장자는 .yaml
또는 .template
이어야 합니다.
이 장에서는 고유한 템플릿 파일을 생성할 수 있도록 HOT 구문을 이해하기 위한 몇 가지 기본 사항을 제공합니다.
5.1. heat 템플릿 기본 사항 학습
5.1.1. heat 템플릿 이해
Heat 템플릿에는 다음 세 가지 주요 섹션이 있습니다.
- 매개 변수
-
이러한 설정은 스택을 사용자 지정하기 위해 heat에 전달됩니다. heat 매개변수를 사용하여 기본값을 사용자 지정할 수도 있습니다. 이러한 설정은 템플릿의
parameters
섹션에 정의되어 있습니다. - 리소스
-
스택의 일부로 생성 및 구성하는 특정 오브젝트입니다. 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 템플릿에는 사용할 구문 버전과 사용 가능한 기능을 정의하는 heat_template_version
매개변수도 필요합니다. 자세한 내용은 공식 Heat 문서 를 참조하십시오.
5.1.2. 환경 파일 이해
환경 파일은 heat 템플릿에 대한 사용자 지정을 제공하는 특수 유형의 템플릿입니다. 여기에는 세 가지 핵심 부분이 포함됩니다.
- 리소스 레지스트리
-
이 섹션에서는 다른 heat 템플릿에 연결된 사용자 정의 리소스 이름을 정의합니다. 이를 통해 코어 리소스 컬렉션에 없는 사용자 정의 리소스를 생성할 수 있습니다. 이러한 값은 환경 파일의
resource_registry
섹션에 정의되어 있습니다. - 매개 변수
-
최상위 템플릿의 매개 변수에 적용하는 일반적인 설정입니다. 예를 들어 리소스 레지스트리 매핑과 같이 중첩 스택을 배포하는 템플릿이 있는 경우 매개변수는 중첩 리소스에 대한 템플릿이 아닌 최상위 템플릿에만 적용됩니다. 매개변수는 환경 파일의
parameters
섹션에 정의되어 있습니다. - 매개변수 기본값
-
이러한 매개변수는 모든 템플릿에서 매개변수의 기본값을 수정합니다. 예를 들어 리소스 레지스트리 매핑과 같이 중첩 스택을 배포하는 heat 템플릿이 있는 경우 매개변수 기본값은 모든 템플릿에 적용됩니다. 매개변수 기본값은 환경 파일의
parameter_defaults
섹션에 정의되어 있습니다.
오버클라우드의 사용자 지정 환경 파일을 생성할 때 매개변수
대신 parameter_defaults
를 사용합니다. 이는 매개변수가 오버클라우드의 모든 스택 템플릿에 적용되도록 합니다.
기본 환경 파일의 예:
resource_registry: OS::Nova::Server::MyServer: myserver.yaml parameter_defaults: NetworkName: my_network parameters: MyIP: 192.168.0.1
heat 템플릿 my_template.yaml
에서 스택을 생성할 때 환경 파일my_env.yaml
이 포함될 수 있습니다. my_env.yaml
파일은 OS::Nova::Server::MyServer
라는 새 리소스 유형을 생성합니다. myserver.yaml
파일은 기본 제공 항목을 재정의하는 이 리소스 유형의 구현을 제공하는 heat 템플릿 파일입니다. my_template.yaml
파일에 OS::Nova::Server::MyServer
리소스를 포함할 수 있습니다.
MyIP
는 이 환경 파일과 함께 배포하는 기본 heat 템플릿에만 매개변수를 적용합니다. 이 예에서는 my_template.yaml
의 매개변수에만 적용됩니다.
NetworkName
은 기본 heat 템플릿인 my_template.yaml
및 이 예제의 OS::Nova::Server::MyServer
리소스와 같은 기본 템플릿이 포함된 리소스와 연결된 템플릿 모두에 적용됩니다.
RHOSP에서 heat 템플릿 파일을 사용자 지정 템플릿 리소스로 사용하려면 파일 확장자는 .yaml
또는 .template
이어야 합니다.