Kapitel 5. Heat-Vorlagen verstehen
Einige der Szenarien in diesem Handbuch verwenden benutzerdefinierte Heat-Vorlagen um bestimmte Aspekte der Overcloud, wie Netzwerkisolation und Netzwerkschnittstellenkonfiguration, zu definieren. Dieser Abschnitt bietet Ihnen eine grundlegende Einführung in Heat-Vorlagen, damit Sie Struktur und Format dieser Vorlagen im Zusammenhang mit dem Red Hat Enterprise Linux OpenStack Platform Director besser verstehen können.
5.1. Heat-Vorlagen
Der Director verwendet Heat-Orchestrierungsvorlagen (Heat Orchestration Templates, kurz HOT) als Vorlagenformat für seinen Overcloud-Bereiststellungsplan. Vorlagen im HOT-Format sind meistens als YAML dargestellt. Der Zweck einer Vorlage ist die Definition und Erstellung eines stack, welches eine Sammlung der von Heat erstellten Ressourcen ist, und der Konfiguration pro Ressource. Ressourcen sind Objekte in OpenStack und können Compute-Ressourcen, Netzwerkkonfiguration, Sicherheitsgruppen, Skalierungsregeln und benutzerdefinierte Ressourcen beinhalten.
Heat-Vorlagen sind in drei Hauptabschnitte strukturiert:
- Parameters - Dies sind an Heat übergebene Einstellungen, anhand derer man einen Stack und jegliche Standardwerte für Parameter ohne übergebene Werte anpassen kann. Diese sind im
parametersAbschnitt einer Vorlage definiert. - resources - Dies sind die spezifischen Objekte, die als Teil eines Stacks zu erstellen und zu konfigurieren sind. OpenStack enthält eine Reihe von Kernressourcen, die sich über alle Komponenten erstrecken. Definiert sind diese im
resourcesAbschnitt einer Vorlage. - Output - Dies sind Werte, die nach Erstellung des Stacks von Heat übergeben wurden. Zugreifen können Sie auf diese Werte entweder über Heat-API oder Client-Tools. Sie sind im
outputAbschnitt einer Vorlage definiert.
Hier ist ein Beispiel für eine einfache Heat-Vorlage:
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 ] }
Diese Vorlage benutzt den Ressourcentyp
type: OS::Nova::Server um eine Instanz namens my_instance mit bestimmter Variante, Image und Schlüssel zu erstellen. Der Stack kann den Wert von instance_name zurückbringen, der My Cirros Instance ist.