Cloudcomputing Kochbuch Orchestrierung: Unterschied zwischen den Versionen

ZIM HilfeWiki - das Wiki
Zeile 22: Zeile 22:
 
| heat_template_version || Die Version des erstellten Templates
 
| heat_template_version || Die Version des erstellten Templates
 
|-
 
|-
| parameters || Variablen, die im laufe des Scripts wieder aufgerufen werden können
+
| parameters || Variablen, die im laufe des Scripts wieder aufgerufen werden können (z.B. Schlüsselpaare, Flavor)
 
|-
 
|-
 
| resources || Ressourcen, die durch das Template erstellt werden sollen (z.B. Virtuelle Maschinen, Netzwerke)
 
| resources || Ressourcen, die durch das Template erstellt werden sollen (z.B. Virtuelle Maschinen, Netzwerke)
Zeile 32: Zeile 32:
 
Die verfügbaren Heat Template Versionen können Sie in der [https://rdi-cloud.uni-paderborn.de/project/template_versions/ Weboberfläche] unter ''Orchestrierung/Vorlagenversionen'' einsehen.
 
Die verfügbaren Heat Template Versionen können Sie in der [https://rdi-cloud.uni-paderborn.de/project/template_versions/ Weboberfläche] unter ''Orchestrierung/Vorlagenversionen'' einsehen.
 
Hier ist zu empfehlen, dass Sie die neuste Version verwenden, da hier üblicherweise die beste Kompatibilität gewährleistet ist.
 
Hier ist zu empfehlen, dass Sie die neuste Version verwenden, da hier üblicherweise die beste Kompatibilität gewährleistet ist.
Unter ''Ressourcentypen'' finden Sie dort auch eine Auflistung der verfügbaren Ressourcen, welche Sie in Ihrem Template definieren können. Wenn Sie auf den Namen einer Ressource klicken, gelangen  
+
Unter [https://rdi-cloud.uni-paderborn.de/project/resource_types/ Ressourcentypen] finden Sie dort auch eine Auflistung der verfügbaren Ressourcen, welche Sie in Ihrem Template definieren können. Wenn Sie auf den Namen einer Ressource klicken, gelangen  
 
Sie zu der Hilfeseite der jeweiligen Ressource, hier werden Ihnen die verfügbare Parameter kurz erklärt.
 
Sie zu der Hilfeseite der jeweiligen Ressource, hier werden Ihnen die verfügbare Parameter kurz erklärt.
 +
 +
<bootstrap_alert color=info>Die Einrückung in einem HOT-Template muss immer zwei Leerzeichen betragen, ansonsten erhalten Sie Fehler bei der Erstellung des Stacks.
 +
</bootstrap_alert>
  
 
Als ersten Beispiel finden Sie hier ein einfaches Template, in dem zunächst eine Instanz mit Netzwerkport und Floating IP erstellt wird.
 
Als ersten Beispiel finden Sie hier ein einfaches Template, in dem zunächst eine Instanz mit Netzwerkport und Floating IP erstellt wird.
Zeile 108: Zeile 111:
 
</source>
 
</source>
  
Hier wird im oberen Teil zunächst die Template Version festgelegt und eine kurze Beschreibung zum Template gegeben.
+
Hier wird im oberen Teil zunächst die Template Version festgelegt und eine kurze Beschreibung zum Template gegeben,
Danach folgt der Punkt <code>parameters</code>. Die Parameter können beim Deployment des Stacks mit angegeben und bieten so die Möglichkeit z.B. den Flavor einer VM oder ein eigenes Schlüsselpaar einzugeben. Die Struktur der Parameter ist dabei immer die selbe:
+
danach folgt der Punkt <code>parameters</code>. Die Parameter können beim Deployment des Stacks mit angegeben und bieten so die Möglichkeit z.B. den Flavor einer VM oder ein eigenes Schlüsselpaar einzugeben. Die Struktur der Parameter ist dabei immer die selbe:
 
<source>
 
<source>
 
Name_des_Parameters:
 
Name_des_Parameters:
Zeile 117: Zeile 120:
 
</source>
 
</source>
  
Anschließend folgt die Definition der Ressourcen. Auch hier geben Sie zunächst den Namen und den Typ der Ressource an. Der Typ richtet sich je nach dem, welches Modul von Openstack angesprochen werden. Eine Übersicht der verfügbaren Ressourcen erhalten Sie [https://rdi-cloud.uni-paderborn.de/project/resource_types/ hier]. Abhängig von der Ressource ändern sich die möglichen Eigenschaften. Mithilfe der Funktionen ''get_param'', ''get_ressource'' und ''get_attr'' können Sie innerhalb des Templates auf die jeweiligen Werte referenzieren. Diese müssen nicht zwingend vorher definiert sein, sondern können auch im Script hinter dem Aufruf stehen.  
+
Anschließend folgt die Definition der Ressourcen. Auch hier geben Sie zunächst den Namen und den Typ der Ressource an. Der Typ gibt an, welches Modul von Openstack angesprochen werden soll. Eine Übersicht der verfügbaren Ressourcen erhalten Sie unter [https://rdi-cloud.uni-paderborn.de/project/resource_types/ Ressourcentypen]. Abhängig von der Ressource ändern sich die möglichen Eigenschaften. Mithilfe der Funktionen ''get_param'', ''get_ressource'' und ''get_attr'' können Sie innerhalb des Templates auf die jeweiligen Werte referenzieren. Diese müssen nicht zwingend vorher definiert sein, sondern können auch im Script hinter dem Aufruf stehen.  
 
<source>
 
<source>
 
Name_der_Ressource:
 
Name_der_Ressource:
Zeile 133: Zeile 136:
 
     value: { get_attr: [ Ressource, Attribut ] }
 
     value: { get_attr: [ Ressource, Attribut ] }
 
</source>
 
</source>
== Eine Vorlage testen ==
 
  
 +
Speichern Sie ihr Template als <code>.yaml</code> Datei ab.
 
== Einen Stack erstellen und starten ==
 
== Einen Stack erstellen und starten ==
  
Zeile 141: Zeile 144:
 
== Einen Stack löschen ==
 
== Einen Stack löschen ==
  
Vorlagen Generator
+
== Instanzen per Cloud-Config konfigurieren ==
Config per clout-config.yaml übergeben
+
clout-config.yaml übergeben
 
https://cloudinit.readthedocs.io/en/latest/topics/examples.html#
 
https://cloudinit.readthedocs.io/en/latest/topics/examples.html#
 +
 +
 +
== Vorlagen Generator ==

Version vom 22. Juni 2021, 08:25 Uhr

Allgemeine Informationen
Anleitung
Informationen
BetriebssystemAlle
ServiceCloudcomputing
Interessant fürAngestellte, Studierende und Gäste
HilfeWiki des ZIM der Uni Paderborn

no displaytitle found: Cloudcomputing Kochbuch Orchestrierung

In diesem Artikel erfahren Sie, wie Sie mithilfe der HEAT-Komponente von OpenStack einen eigenen IaC (Infrastructure as Code) Stack erstellen, testen und starten.

Rezepte[Bearbeiten | Quelltext bearbeiten]

Anlegen einer Vorlage[Bearbeiten | Quelltext bearbeiten]

Die Konfiguration des Stacks erfolgt nicht wie in den anderen Artikel dieses Bereiches beschrieben über die Weboberfläche oder den Kommandozeilen-Client, sondern wird mithilfe von Templates erstellt. Die Templates werden als HOT (Heat Orchestration Templates) bezeichnet und werden in YAML verfasst. Es werden grundsätzlich vier Dinge definiert:

Typ Beschreibung
heat_template_version Die Version des erstellten Templates
parameters Variablen, die im laufe des Scripts wieder aufgerufen werden können (z.B. Schlüsselpaare, Flavor)
resources Ressourcen, die durch das Template erstellt werden sollen (z.B. Virtuelle Maschinen, Netzwerke)
outputs Ausgaben, die nach der Erstellung einsehbar seien sollen (z.B. Floating-IPs)

Die verfügbaren Heat Template Versionen können Sie in der Weboberfläche unter Orchestrierung/Vorlagenversionen einsehen. Hier ist zu empfehlen, dass Sie die neuste Version verwenden, da hier üblicherweise die beste Kompatibilität gewährleistet ist. Unter Ressourcentypen finden Sie dort auch eine Auflistung der verfügbaren Ressourcen, welche Sie in Ihrem Template definieren können. Wenn Sie auf den Namen einer Ressource klicken, gelangen Sie zu der Hilfeseite der jeweiligen Ressource, hier werden Ihnen die verfügbare Parameter kurz erklärt.

Als ersten Beispiel finden Sie hier ein einfaches Template, in dem zunächst eine Instanz mit Netzwerkport und Floating IP erstellt wird.

heat_template_version: 2018-08-31
description: A simple HOT

parameters:
  flavor:
    type: string
    description: Flavor used by the server
    default: upb-medium
  image:
    type: string
    description: Image used for server
    default: c315dc8d-8a9a-499d-a03e-9988d246bb77
  user_key:
    type: string
    description: SSH key to connect to the server
  network:
    type: string
    description: The network for the server
    default: uni
  subnet:
    type: string
    description: The subnet for the server
    default: uni-subnet-0
  floating_ip_id:
    type: string
    description: ID of the Floating IP to use

resources:
  webserver:
    type: OS::Nova::Server
    properties:
      flavor: { get_param: flavor }
      image: { get_param: image }
      key_name: { get_param: user_key }
      networks:
        - port: { get_resource: webserver_port }

  webserver_port:
    type: OS::Neutron::Port
    properties:
      network: { get_param: network }
      fixed_ips:
        - subnet: { get_param: subnet }
      security_groups: [{ get_resource: webserver_security_group }]

  webserver_floating_ip:
    type: OS::Neutron::FloatingIPAssociation
    properties:
      floatingip_id: { get_param: floating_ip_id }
      port_id: { get_resource: webserver_port }

  webserver_security_group:
    type: OS::Neutron::SecurityGroup
    properties:
      description: Add security group rules for server
      name: security-group
      rules:
        - remote_ip_prefix: 0.0.0.0/0
          protocol: tcp
          port_range_min: 22
          port_range_max: 22
        - remote_ip_prefix: 0.0.0.0/0
          protocol: icmp

outputs:
  server_private_ip:
    description: IP address of the server in private network
    value: { get_attr: [ webserver, first_address ] }

Hier wird im oberen Teil zunächst die Template Version festgelegt und eine kurze Beschreibung zum Template gegeben, danach folgt der Punkt parameters. Die Parameter können beim Deployment des Stacks mit angegeben und bieten so die Möglichkeit z.B. den Flavor einer VM oder ein eigenes Schlüsselpaar einzugeben. Die Struktur der Parameter ist dabei immer die selbe:

Name_des_Parameters:
    type: Typ des Parameter (string, number, boolean)
    description: Beschreibung des Parameters
    default: Standardwert, falls keine Eingabe gemacht wird

Anschließend folgt die Definition der Ressourcen. Auch hier geben Sie zunächst den Namen und den Typ der Ressource an. Der Typ gibt an, welches Modul von Openstack angesprochen werden soll. Eine Übersicht der verfügbaren Ressourcen erhalten Sie unter Ressourcentypen. Abhängig von der Ressource ändern sich die möglichen Eigenschaften. Mithilfe der Funktionen get_param, get_ressource und get_attr können Sie innerhalb des Templates auf die jeweiligen Werte referenzieren. Diese müssen nicht zwingend vorher definiert sein, sondern können auch im Script hinter dem Aufruf stehen.

Name_der_Ressource:
    type: Typ der Ressource
    properties: Auflistung der Eigenschaften
      Eigenschaft_1: Wert
      Eigenschaft_2: Wert

Am Ende des Templates werden die Ausgaben definiert. Mithilfe der Funktion get_attr können Sie auf Attribute einer Ressource zugreifen und diese in der Übersicht des Stacks ausgeben. Die möglichen Attribute finden Sie in der Übersicht der Ressourcentypen, wenn Sie auf den Namen der Ressource klicken.

outputs:
  Name_der_Ausgabe:
    description: Beschreibung der Ausgabe
    value: { get_attr: [ Ressource, Attribut ] }

Speichern Sie ihr Template als .yaml Datei ab.

Einen Stack erstellen und starten[Bearbeiten | Quelltext bearbeiten]

Einen Stack updaten[Bearbeiten | Quelltext bearbeiten]

Einen Stack löschen[Bearbeiten | Quelltext bearbeiten]

Instanzen per Cloud-Config konfigurieren[Bearbeiten | Quelltext bearbeiten]

clout-config.yaml übergeben https://cloudinit.readthedocs.io/en/latest/topics/examples.html#


Vorlagen Generator[Bearbeiten | Quelltext bearbeiten]


Bei Fragen oder Problemen wenden Sie sich bitte telefonisch oder per E-Mail an uns:

Tel. IT: +49 (5251) 60-5544 Tel. Medien: +49 (5251) 60-2821 E-Mail: zim@uni-paderborn.de

Das Notebook-Café ist die Benutzerberatung des ZIM - Sie finden uns in Raum I0.401

Wir sind zu folgenden Zeiten erreichbar:


Mo Di - Fr
Vor-Ort-Support Geschlossen Über die Feiertage geschlossen
Telefonsupport 08:30 - 13:00 Über die Feiertage geschlossen


Das ZIM:Servicecenter Medien auf H1 hat aktuell zu folgenden Zeiten geöffnet:

Mo Di - Fr
08:00 - 16:00 Über die Feiertage geschlossen


Cookies helfen uns bei der Bereitstellung des ZIM HilfeWikis. Bei der Nutzung vom ZIM HilfeWiki werden die in der Datenschutzerklärung beschriebenen Cookies gespeichert.