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 parameters Abschnitt 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 resources Abschnitt 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 output Abschnitt 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.