IBM Cloud Orchestrator Version 2.5

Beispiele für Heat-Vorlagen

Eine Heat-Vorlage ist eine gültige, in der OpenStack-HOT-Spezifikation definierte HOT-Vorlage (Heat Orchestration Template).

Ausführliche Informationen zu HOT-Vorlagen finden Sie im Handbuch OpenStack Template Guide auf der Webseite http://docs.openstack.org/developer/heat/template_guide/. Diesem Handbuch können Sie die folgenden Informationen entnehmen: Die HOT-Vorlagen sind in Entwicklung, und deshalb wird das Handbuch OpenStack Template Guide regelmäßig von der Community aktualisiert.

Bei der Entwicklung von Vorlagen ist es empfehlenswert, Parameter zu verwenden und fest codierte Werte zu vermeiden.

In den folgenden Beispielen stammen Beispiel 1 und Beispiel 2 aus dem Handbuch OpenStack Template Guide und veranschaulichen die Unterschiede bei der Verwendung von fest codierten Werten und Parametern.

Beispiel 3 zeigt, wie eine Suchannotation verwendet wird, um eine Liste gültiger Werte für einen Parameter zu generieren. Diese erleichtert dem Benutzer die Auswahl eines gültigen Parameterwerts.

Beispiel 4 zeigt, wie das Kennwort admin für eine virtuelle Maschine im Abschnitt user_data festgelegt wird.

Beispiel 5 zeigt, wie ein AIX- oder Linux on Power-Server in PowerVC festgelegt wird. In PowerVC wird die zu verwendende Speicherkonnektivitätsgruppe und die Speichervorlage angegeben, in der der Bootdatenträger platziert wird.

Die folgenden Suchannotationen werden unterstützt:
SCOIMAGE
Suche nach Images im Image-Repository für die Region.
SCOFLAVOR
Suche nach der Versionsgröße innerhalb der in der Region verfügbaren Auswahlmöglichkeiten.
SCONETWORK
Suche nach verfügbaren Netzen in der Region.
SCOKEY
Suche nach den registrierten Schlüsseln für das Projekt.
Anmerkung: Bei HOT-Vorlagen (Heat Orchestration Template) müssen Formatierungsvorgaben beachtet werden. Um Fehler bei der Vorlagenvalidierung zu vermeiden, verwenden Sie die richtige Einrückung.

Beispiel 1

Das folgende Beispiel stellt eine einfache Heat-Vorlage für die Implementierung eines einzelnen virtuellen Systems dar und ist auf eine Einzelkombination aus Image-, Schlüssel- und Versionswerten beschränkt, die in der Vorlage fest codiert sind:
heat_template_version: 2013-05-23

description: Simple template to deploy a single compute instance with hardcoded values

resources:
  my_instance:
    type: OS::Nova::Server
    properties:
      key_name: my_key_pair_1
      image: cirros-0.3.1-x86_64
      flavor: m1.tiny

Beispiel 2

Das folgende Beispiel stellt eine Heat-Vorlage für die Implementierung eines einzelnen virtuellen Systems mit Parametern dar und kann deshalb bei anderen Konfigurationen wiederverwendet werden:
heat_template_version: 2013-05-23
description: Simple template to deploy a single compute instance with parameters

parameters:
  key_name:
    type: string
    label: Schlüsselname
    description: Name of key-pair to be used for compute instance
  image_id:
    type: string
    label: Image-ID
    description: Image to be used for compute instance
  instance_type:
    type: string
    label: Instanztyp
    description: Type of instance (flavor) to be used
resources:
  my_instance:
    type: OS::Nova::Server
    properties:
      key_name: { get_param: key_name }
      image: { get_param: image_id }
      flavor: { get_param: instance_type }

Beispiel 3

Das folgende Beispiel stellt eine einfache Heat-Vorlage für die Implementierung eines Stack mit zwei VM-Instanzen unter Verwendung von Suchannotationen für Parameter dar:
heat_template_version: 2013-05-23

description: Simple template to deploy a stack with two virtual machine instances

parameters:
  image_name_1:
    type: string
    label: Imagename
    description: SCOIMAGE Specify an image name for instance1 
    default: cirros-0.3.1-x86_64
  image_name_2:
    type: string
    label: Imagename
    description: SCOIMAGE Specify an image name for instance2 
    default: cirros-0.3.1-x86_64
  network_id:
    type: string
    label: Netz-ID
    description: SCONETWORK Network to be used for the compute instance

resources:
  my_instance1:
    type: OS::Nova::Server
    properties:
      image: { get_param: image_name_1 } 
      flavor: m1.small
      networks:
        - network : { get_param : network_id }
  my_instance2:
    type: OS::Nova::Server
    properties:
      image: { get_param: image_name_2 } 
      flavor: m1.tiny      networks:
        - network : { get_param : network_id }

Beispiel 4

Das folgende Beispiel stellt eine einfache Heat-Vorlage zum Festlegen des Kennworts für admin für eine virtuelle Maschine im Abschnitt user_data dar:
heat_template_version: 2013-05-23

description: Simple template to set the admin password for a virtual machine

parameters:
  key_name:
    type: string
    label: Schlüsselname
    description: SCOKEY Name of the key pair to be used for the compute instance
  image_name:
    type: string
    label: Imagename
    description: SCOIMAGE Name of the image to be used for the compute instance
  password:
    type: string
    label: Kennwort
    description: admin password
    hidden: true

 
resources:
  my_instance:
    type: OS::Nova::Server
    properties:
      key_name: { get_param: key_name }
      admin_user: sampleuser
      image: { get_param: image_name }
      flavor: m1.small
      user_data:
        str_replace:
          template: |
            #!/bin/bash
            echo "Setting  password to  " $password           
            echo $password |passwd --stdin sampleuser

          params:
            $password: { get_param: password }

Beispiel 5

Das folgende Beispiel stellt eine einfache Heat-Vorlage für die Implementierung eines AIX- oder Linux on Power-Servers in PowerVC dar. In PowerVC wird die zu verwendende Speicherkonnektivitätsgruppe und die Speichervorlage angegeben, in der der Bootdatenträger implementiert wird:

heat_template_version: 2013-05-23
description: Template to Deploy on NPIV v7k storage only

parameters:
  network_id1:
    type: string
    description: SCONETWORK ID of the (nova) network a server should be deployed to.
  flavor_id:
    type: string
    description: SCOFLAVOR The flavor to be applied to the server DatabaseTierVM.
  image:
    type: string
    label: Image
    description: SCOIMAGE The Image to be deployed
resources:
  heat:
    type: OS::Nova::Server
    properties:
      image: { get_param: image }
      flavor: { get_param: flavor_id }
      availability_zone: D0EB
      metadata: { selected-scg: d91acbbe-3d81-4279-b389-54b3ad4a1c8c, selected-storage-template: 0431b2f3-fea6-4aa5-b3fb-d0e82ccf5ebb }
      networks:
         - network : { get_param : network_id1 }
Anmerkung: Sie können die Verfügbarkeitszonen für einen PowerVM-Server in der Anzeige Hostaggregate im OpenStack-Dashboard erstellen. Wenn Sie neue Verfügbarkeitszonen erstellt haben, vergewissern Sie sich, dass diese daraufhin den relevanten Domänen und Projekten hinzugefügt werden, bevor Sie versuchen, sie zu verwenden. selected-scg (Speicheronnektivitätsgruppe) und selected-storage-template befinden sich in Image_topology des Image, das Sie verwenden möchten. Führen Sie den Befehl glance image-show <Image-ID> auf dem OpenStack-Controller aus. Die Imagetopologie gibt an, welche Speicherkonnektivitätsgruppe und welche Speichervorlagen von diesem Image unterstützt werden.