Schritt 16: Wir lernen Heat besser kennen
Vorwort
Bisher konnte der Eindruck entstehen, das Heat und das manuelle Erstellen per Kommandozeile genau so viel Zeit in Anspruch nimmt, was beim einmaligen Erstellen auch stimmt.
Dadurch das nun ein Template existiert, können wir diese Grundlage immer wieder nutzen und im Zweifel weiter entwickeln.
Damit dies auch möglich ist, wird in diesem Schritt weiter auf Heat eingegangen.
Parameter
Da das Ganze aufgebaut werden soll, ist es zunächst sinnvoll, bekannte oder individuelle Parameter zu definieren.
In diesem Kontext wird der vorgegebene SSH-Key ersetzt und statt einem festen Wert, wird er als individueller Parameter definiert, der beim Start angegeben werden kann:
heat_template_version: 2014-10-16
parameters:
key_name:
type: string
Wie bisher gelernt, beginnt das Template mit der Version und wird dann mit parameters
fortgeführt.
Nach dem Parameter wird der Name, welcher individuell benannt werden kann, vergeben.
Auch ist es notwendig den Typ anzugeben, in diesem Fall ist es string
.
Nachdem der Parameter festgelegt ist, nutzen wir als Vorlage das vorige Template und ergänzen es.
Damit sieht das Template dann so aus:
heat_template_version: 2014-10-16
parameters:
key_name:
type: string
resources:
Instanz:
type: OS::Nova::Server
properties:
key_name: BeispielKey
image: Ubuntu 16.04 Xenial Xerus - Latest
flavor: m1.small
Um das Template zu komplettieren, wird key_name
durch den vorher definierten Parameter ersetzt.
Der Befehl dafür lautet get_param
.
Dieser sagt aus, dass er einen definierten Parameter nutzen soll und damit das Template weiß, welchen Parameter er nutzen soll, ergänzen wir den Befehl get_param
um key_name
:
heat_template_version: 2014-10-16
parameters:
key_name:
type: string
resources:
Instanz:
type: OS::Nova::Server
properties:
key_name: { get_param: key_name }
image: Ubuntu 16.04 Xenial Xerus - Latest
flavor: m1.small
Abschluss
Das Template wurde jetzt bereits über einen frei definierbaren Parameter erweitert und im nächsten Schritt wird das Netzwerk hinzugefügt.