7장. heat 템플릿 작업
이 가이드의 사용자 지정 구성은 heat 템플릿 및 환경 파일을 사용하여 오버클라우드의 특정 측면을 정의합니다. 이 장에서는 Red Hat OpenStack Platform의 맥락에서 heat 템플릿 구조에 대한 기본 소개를 설명합니다. 템플릿의 목적은 heat가 생성하는 리소스 컬렉션 및 리소스 구성인 스택을 정의하고 생성하는 것입니다. 리소스는 OpenStack의 오브젝트이며 컴퓨팅 리소스, 네트워크 구성, 보안 그룹, 확장 규칙 및 사용자 지정 리소스를 포함할 수 있습니다.
heat 템플릿 구조에는 세 가지 주요 섹션이 있습니다.
매개 변수
매개변수는 heat로 전달되는 설정입니다. 이러한 매개변수를 사용하여 기본값과 기본값이 아닌 값을 정의하고 사용자 지정합니다. 이러한 매개 변수를 템플릿의 parameters 섹션에 정의합니다.
Resources
리소스는 스택의 일부로 생성 및 구성하려는 특정 오브젝트입니다. OpenStack에는 모든 구성 요소에 걸쳐 있는 핵심 리소스 세트가 포함되어 있습니다. 템플릿의 resources 섹션에 리소스를 정의합니다.
출력 결과
스택 생성 후 heat에서 전달된 값입니다. heat API 또는 클라이언트 툴을 통해 이러한 값에 액세스할 수 있습니다. 템플릿의 output 섹션에 이러한 값을 정의합니다.
Heat에서 템플릿을 처리하면 템플릿의 스택과 리소스 템플릿의 하위 스택 세트를 생성합니다. 이 스택 계층 구조는 템플릿과 함께 정의된 기본 스택에서 축소됩니다. 다음 명령을 사용하여 스택 계층 구조를 볼 수 있습니다.
heat stack-list --show-nested
$ heat stack-list --show-nested
7.1. 코어 heat 템플릿 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat OpenStack Platform에는 오버클라우드의 코어 heat 템플릿 컬렉션이 포함되어 있습니다. 이 컬렉션은 /usr/share/openstack-tripleo-heat-templates
디렉터리에서 찾을 수 있습니다.
이 컬렉션에는 많은 heat 템플릿과 환경 파일이 있습니다. 이 섹션에는 배포를 사용자 지정하는 데 사용할 수 있는 기본 파일 및 디렉터리에 대한 정보가 포함되어 있습니다.
overcloud.j2.yaml
이 파일은 오버클라우드 환경을 생성하는 데 사용되는 기본 템플릿 파일입니다. 이 파일은 Jinja2 구문을 사용하고 템플릿의 특정 섹션을 반복하여 사용자 지정 역할을 생성합니다. Jinja2 형식은 Overcloud 배포 프로세스 중에 YAML로 렌더링됩니다.
overcloud-resource-registry-puppet.j2.yaml
이 파일은 오버클라우드 환경을 생성하는 데 사용하는 기본 환경 파일입니다. 이 파일에는 오버클라우드 이미지에 Puppet 모듈에 대한 구성 세트가 포함되어 있습니다. director가 각 노드에 오버클라우드 이미지를 쓰면 heat는 이 환경 파일에 등록된 리소스를 사용하여 각 노드의 Puppet 설정을 시작합니다. 이 파일은 Jinja2 구문을 사용하고 템플릿의 특정 섹션을 반복하여 사용자 지정 역할을 생성합니다. Jinja2 형식은 Overcloud 배포 프로세스 중에 YAML로 렌더링됩니다.
roles_data.yaml
이 파일에는 오버클라우드의 역할 정의가 포함되어 있으며 서비스를 각 역할에 매핑합니다.
network_data.yaml
이 파일에는 오버클라우드의 네트워크 정의와 서브넷, 할당 풀, VIP 상태를 포함한 해당 속성이 포함되어 있습니다. 기본 network_data.yaml
파일에는 기본 네트워크(외부, 내부 Api, 스토리지, 스토리지 관리, 테넌트, 관리)만 포함됩니다. 사용자 지정 network_data.yaml
파일을 생성하고 -n
옵션을 사용하여 openstack overcloud deploy
명령에 포함할 수 있습니다.
plan-environment.yaml
이 파일에는 계획 이름, 사용하려는 기본 템플릿, 오버클라우드에 적용할 환경 파일을 포함하여 오버클라우드 계획에 대한 메타데이터 정의가 포함되어 있습니다.
capabilities-map.yaml
이 파일에는 오버클라우드 계획에 대한 환경 파일 매핑이 포함되어 있습니다. 이 파일을 사용하여 Director web UI에서 환경 파일을 설명하고 활성화합니다. 환경 디렉터리에 사용자 지정 환경 파일을 포함하지만 capabilities-map.yaml
파일에 이러한 파일을 정의하지 않으면 웹 UI의 Overall Settings 페이지의 기타 하위 탭에서 이러한 환경 파일을 찾을 수 있습니다.
environments
이 디렉터리에는 오버클라우드 생성과 함께 사용할 수 있는 추가 heat 환경 파일이 포함되어 있습니다. 이러한 환경 파일을 사용하면 Red Hat OpenStack Platform 환경에 추가 기능을 사용할 수 있습니다. 예를 들어 cinder-netapp-config.yaml
환경 파일을 사용하여 Block Storage 서비스(cinder)의 NetApp 백엔드 스토리지를 활성화할 수 있습니다. 환경 디렉터리에 사용자 지정 환경 파일을 포함하지만 capabilities-map.yaml
파일에 이러한 파일을 정의하지 않으면 웹 UI의 Overall Settings 페이지의 기타 하위 탭에서 이러한 환경 파일을 찾을 수 있습니다.
network
이 디렉터리에는 격리된 네트워크 및 포트를 생성하는 데 사용할 수 있는 heat 템플릿 세트가 포함되어 있습니다.
Puppet
이 디렉터리에는 puppet 템플릿이 포함되어 있습니다. overcloud-resource-registry-puppet.j2.yaml
환경 파일은 puppet
디렉터리의 파일을 사용하여 각 노드에서 Puppet 구성 애플리케이션을 구동합니다.
puppet/services
이 디렉터리에는 구성 가능 서비스 아키텍처의 모든 서비스에 대한 heat 템플릿이 포함되어 있습니다.
extraconfig
이 디렉터리에는 추가 기능을 활성화하는 데 사용할 수 있는 템플릿이 포함되어 있습니다. 예를 들어 extraconfig/pre_deploy/rhel-registration
디렉터리를 사용하여 노드를 Red Hat Content Delivery 네트워크에 등록하거나 자체 Red Hat Satellite 서버에 노드를 등록할 수 있습니다.