Application Delivery Management

StyleBook zum Erstellen eines virtuellen Lastausgleichsservers

In diesem Beispiel entwerfen Sie ein grundlegendes StyleBook, das einen virtuellen Lastausgleichsserver vom HTTP-Protokolltyp erstellt und Port 80 überwacht. Die Parameter des virtuellen Servers, der IP-Adresse und der Lastausgleichsmethode akzeptieren benutzerdefinierte Werte, d. h. sie sind die Parameter des StyleBook.

Überschrift

Die ersten sechs Zeilen eines StyleBook bilden den Kopfbereich. In diesem Beispiel wird der Kopfzeilenabschnitt wie folgt geschrieben:

name: lb-vserver
description: This StyleBook defines a load balancing virtual server configuration.
display-name: Load Balancing Virtual Server (HTTP)
namespace: com.example.stylebooks
schema-version: "1.0"
version: "0.1"
<!--NeedCopy-->

Der Kopfzeilenabschnitt enthält folgende Details:

  • name: Ein Name für dieses StyleBook.

  • description: Eine Beschreibung, die definiert, was dieses StyleBook tut. Diese Beschreibung wird in Citrix ADM angezeigt.

  • display-name: Ein beschreibender Name für das StyleBook, das in Citrix ADM angezeigt wird.

  • namespace: Ein Namespace ist Teil eines eindeutigen Bezeichners für ein StyleBook, um Namenskollisionen zu vermeiden.

  • schema-version: Nimmt immer den Wert “1.0” in dieser Version.

  • version: Die Versionsnummer des StyleBook. Sie können die Versionsnummer ändern, wenn Sie das StyleBook aktualisieren.

Die Kombination von Name, Namespaceund Version identifiziert ein StyleBook im System eindeutig. Sie können nicht zwei StyleBooks mit derselben Kombination aus Name, Namespace und Version in Citrix ADM verwenden. Sie können jedoch zwei StyleBooks mit demselben Namen und derselben Version, aber unterschiedlichen Namespaces oder mit demselben Namespace und derselben Version, aber unterschiedlichen Namen haben.

Hinweis

Denken Sie daran, dass Sie Ihr StyleBook aktualisiert haben und eine aktualisierte Versionsnummer haben. Wenn Sie nun auf dieses StyleBook in anderen StyleBooks verweisen (dh wenn Sie importieren), stellen Sie sicher, dass Sie die Versionsnummer auch in anderen StyleBooks aktualisieren, damit sie die richtige Version des importierten StyleBook verwenden.

Importieren von StyleBooks

Der Abschnitt nach der Kopfzeile heißt “Import-StyleBooks”. In diesem Abschnitt müssen Sie den Namespace und die Versionsnummer jedes anderen StyleBook deklarieren, auf das Sie in Ihrem aktuellen StyleBook verweisen möchten. Auf diese Weise können Sie andere StyleBooks importieren und wiederverwenden, anstatt dieselbe Konfiguration in Ihrem eigenen StyleBook neu zu erstellen.

In diesem Beispiel wird der Abschnitt Import-StyleBooks wie folgt geschrieben:

import-stylebooks:
 -
  namespace: netscaler.nitro.config
  prefix: ns
  version: "10.5"
<!--NeedCopy-->

Jedes StyleBook muss auf den Namespace netscaler.nitro.config verweisen, wenn es eines der NITRO-Konfigurationsobjekte direkt verwendet. Dieser Namespace enthält alle Citrix ADC NITRO -Typen, z. B. LBVServer.Da Softwareversionen 10.5 und höher unterstützt werden, können Sie mit Ihrem StyleBook Konfigurationen auf jeder Citrix ADC-Instanz erstellen und ausführen, auf der Version 10.5 und höher ausgeführt wird.

Das Präfix, das im Abschnitt Import-StyleBooks verwendet wird, ist eine Abkürzung, um auf die Kombination von Namespace und Version zu verweisen. In diesem Fall bezieht sich ns auf netscaler.nitro.config der Version 10.5. In den späteren Abschnitten Ihres StyleBook können Sie anstelle von Namespace und Version auf das importierte StyleBook die im obigen Beispiel gewählte Präfixzeichenfolge verwenden, z. B. ns.

Die in den StyleBooks verwendete Version ist die Citrix ADC NITRO Version. Ein StyleBook, das auf Nitro Version X basiert, kann verwendet werden, um Citrix ADC mit Version X oder höher zu konfigurieren.

Hinweis

Um sicherzustellen, dass Ihre StyleBooks verwendet werden können, um jede Citrix ADC Instanz der Version 10.5 oder höher zu konfigurieren, empfiehlt Citrix, den Nitro 10.5-Namespace aus Gründen der maximalen Kompatibilität in Ihre StyleBooks zu importieren, die direkt Nitro integrierte StyleBooks verwenden (Namespace: netscaler.nitro.config, Version: 10.5).

Es ist wichtig, dass ein StyleBook, das andere StyleBooks importiert, auf einer Nitro-Version basieren muss, die dieselbe oder höhere Version als die von ihm importierten StyleBooks ist. Beispielsweise kann ein StyleBook, das auf Nitro Version 10.5 basiert, nicht von einem StyleBook abhängig oder verwenden oder importieren, das auf 11.1 basiert. Ein StyleBook basierend auf Version 11.1 kann jedoch ein StyleBook importieren, das auf einer beliebigen Version von weniger als 11.1 basiert.  

Es ist auch möglich, dass ein StyleBook, das den Nitro-Namespace überhaupt nicht importiert. Das bedeutet, dass ein StyleBook nicht direkt Nitro-Komponenten definieren muss, sondern StyleBooks importieren kann, die Nitro-Komponenten definieren. Das StyleBook, das andere StyleBooks importiert, erhält immer die höchste Nitro-Version in der Hierarchie seiner Abhängigkeiten und kann daher zur Konfiguration von Citrix ADCs verwendet werden, die dieser Version oder höher sind.

Parameter

Im Parameterbereich können Sie alle Parameter deklarieren, die Sie in Ihrem StyleBook benötigen. Als StyleBook-Entwickler müssen Sie entscheiden, welche Eingabe die Benutzer Ihres StyleBook angeben sollen. In diesem Beispiel haben Sie Ihr StyleBook so erstellt, dass die Benutzer den Namen des virtuellen Servers, seine IP-Adresse und die Load Balancing-Methode angeben müssen.

Der Parameterabschnitt würde wie folgt aussehen:

parameters:
 -
  name: name
  type: string
  label: Application Name
  description: Name of the application configuration.
  required: true

 -
  name: ip
  type: ipaddress
  label: Application Virtual IP (VIP)
  description: Application VIP that the clients access.
  required: true

-
  name: lb-alg
  type: string
  label: LoadBalancing Algorithm
  description: Choose the load balancing algorithm (method) used for load balancing client request between the application servers.
  allowed-values:
   - ROUNDROBIN
   - LEASTCONNECTION
   default: ROUNDROBIN
<!--NeedCopy-->

Hinweis

Wenn Sie die Bezeichnung eines Parameters nicht angeben, verwendet Citrix ADM bei der Anzeige dieses Parameters das name-Attribut. Sie müssen immer eine Bezeichnung für Ihre Parameter definieren, damit Sie steuern können, wie sie in Citrix ADM angezeigt werden.

Bei Verwendung der APIs wird der Parameter jedoch durch seinen Namen gekennzeichnet.

In diesem Abschnitt haben Sie drei Parameter deklariert, die durch ihre Name-Attributwerte angegeben sind: Name für den virtuellen Servernamen, IP für die IP-Adresse des virtuellen Servers und lb-alg für die Load Balancing-Methode.

  • Typ. Art des Wertes, den diese Parameter annehmen können. Zum Beispiel können name und lb-alg einen Zeichenfolgenwert annehmen und der IP-Wert muss vom Typ ip address sein. Parameter in einem StyleBook können von einem der folgenden integrierten Typen sein:
  • -Zeichenkette. Ein Array von Zeichen. Wenn keine Länge angegeben wird, kann der Zeichenfolgenwert beliebig viele Zeichen annehmen. Sie können jedoch die Länge eines String-Typs einschränken, indem Sie die Attribute min-length und max-length verwenden.
  • Nummer. Eine Ganzzahl. Sie können die minimale und maximale Anzahl angeben, die dieser Typ annehmen kann, indem Sie die Attribute min-value und max-value verwenden.
  • boolescher Wert. Kann entweder wahr oder falsch sein. Beachten Sie auch, dass alle Literale von YAML als Booleans betrachtet werden (zum Beispiel Ja oder Nein).
  • ipadresse. Eine Zeichenfolge, die eine gültige IPv4- oder IPv6-Adresse darstellt.
  • tcp-port. Eine Zahl zwischen 0 und 65535, die einen TCP- oder UDP-Port darstellt.
  • password. Ein undurchsichtiger und geheimer Zeichenfolgenwert. Wenn Citrix ADM einen Wert für diesen Parameter anzeigt, wird er als Sternchen (*****) angezeigt.
  • certfile. Zertifikatdatei.
  • Schlüsseldatei. Private Schlüsseldatei des Zertifikats.
  • -Datei. Ein Parameter dieses Typs erfordert, dass der Benutzer eine Datei hochladen muss, z. B. eine Zertifikat- oder Schlüsseldatei.
  • -Objekt. Besteht aus mehreren Elementen und jedes dieser Elemente ist ein Parameter. Dieser Typ kann verwendet werden, um mehrere verwandte Parameter unter einem übergeordneten Parameter zu gruppieren.
  • erforderlich. Gibt an, ob ein Parameter obligatorisch oder optional ist. Wenn es auf true gesetzt ist, ist der Parameter obligatorisch und der Benutzer muss einen Wert für diesen Parameter angeben, wenn Konfigurationen mit diesem StyleBook erstellt werden. Standardmäßig sind alle Parameter optional. In diesem Beispiel sind name und ip obligatorische Parameter, während lb-alg ein optionaler Parameter ist, dessen Standardwert ROUNDROBIN ist.

Verwenden Sie das Standardattribut, um einem optionalen Parameter einen Standardwert zuzuweisen. Wenn ein Benutzer beim Erstellen einer Konfiguration keinen Wert angibt, wird der Standardwert verwendet. Für den Parameter lb-alg ist beispielsweise der Standardwert ROUNDROBIN.

Verwenden Sie das allowed-values -Attribut, um bestimmte Werte zu definieren, die ein Benutzer beim Erstellen einer Konfiguration auswählen kann. In diesem Beispiel haben Sie zwei Werte für den lb-alg-Parameter angegeben: ROUNDROBIN und LEASTCONNECTION.

Wenn Sie Ihr StyleBook importieren und es verwenden, zeigt Citrix ADM ein Formular mit diesen drei Parametern an. Die für Name und IP angezeigten Felder erlauben die Eingabe von Zeichenfolgen- und IP-Adresstyp, und das Feld lb-alg wird als Dropdownliste angezeigt, wobei ROUNDROBIN als Standardwert ausgewählt ist.

Hinweis

Zusätzlich zu den integrierten Typen kann ein Parameter ein anderes StyleBook als Typ haben. Dies ist eine Möglichkeit, Parameter, die in anderen StyleBooks definiert sind, wiederzuverwenden.

Komponenten

Der letzte Abschnitt in diesem StyleBook wird als Komponentenbereich bezeichnet und gilt als der wichtigste Abschnitt im StyleBook. In diesem Abschnitt definieren Sie die Konfigurationsobjekte, die vom SyleBook erstellt werden müssen.

Für dieses Beispiel müssen Sie den Komponentenabschnitt wie folgt schreiben:

components:
 -
  name: lbvserver-comp
  type: ns::lbvserver
  properties:
   name: $parameters.name
   servicetype: HTTP
   ipv46: $parameters.ip
   port: 80
   lbmethod: $parameters.lb-alg
<!--NeedCopy-->

Dieses Beispiel enthält nur eine Komponente. Die wichtigsten Attribute einer Komponente sind Name, Typ und Eigenschaften. Der Typ einer Komponente bestimmt, welche Eigenschaften diese Komponente bietet. Komponenten sind von zwei Arten:

  • Eingebauter Typ. Dieser Typ wird vom System bereitgestellt und Sie müssen ihn nicht definieren, z. B. die NITRO -Entitätstypen “lbvserver” oder “servicegroup”. In diesem Beispiel verwenden Sie einen integrierten Komponententyp.

  • Zusammengesetzter Typ. Bei diesem Typ handelt es sich um das StyleBook, das Sie erstellt und in Citrix ADM importiert haben, oder um das StandardstyleBook, das mit Citrix ADM ausgeliefert wird. Weitere Informationen zu zusammengesetzten StyleBooks finden Sie unter Erstellen eines zusammengesetzten StyleBook.

In diesem Beispiel haben Sie eine Komponente namens lbvserver-compdefiniert. Diese Komponente ist vom Typ ns። lbvserver(ein integrierter Nitro-Typ), wobei “ns” das Präfix ist, das auf den Namespace netscaler.nitro.config und Version 10.5 verweist, die Sie im Abschnitt import-stylebooks angegeben hatten, und “lbvserver” ist eine Nitro-Ressource in diesem Namespace.

Die hier definierten Eigenschaften sind die Attribute der Ressource lbvserver. Weitere Informationen über alle verfügbaren Citrix ADC Nitro-Ressourcen und deren Attribute finden Sie in der Citrix ADC NITRO REST API-Dokumentation.

Die Eigenschaften in diesem Abschnitt enthalten die obligatorischen Attribute der Ressource lbvserver und können Sie Werte für diese Attribute angeben. In diesem Beispiel geben Sie statische Werte für servicetype und port an, während die Eigenschaften name, ipv46 und lbmethod ire Werte aus den Eingabeparametern abrufen. Im Rest des StyleBook können Sie auf die Parameternamen verweisen, die im Parameterabschnitt definiert sind, indem Sie den Ausdruck $parameters.<parameter-name> verwenden, zum Beispiel $parameters.ip.

Hinweis

Per Konvention wird das Präfix “ns” immer verwendet, um einen Citrix ADC Nitro Namespace im Abschnitt “import-stylebooks” zu bestimmen. Obwohl dies nicht obligatorisch ist, empfiehlt Citrix, die gleiche Konvention in Ihren eigenen StyleBooks zur Konsistenz zu verwenden.

Erstellen Sie Ihr StyleBook

Nachdem Sie nun alle erforderlichen Abschnitte dieses StyleBook definiert haben, bringen Sie sie alle zusammen, um Ihr erstes StyleBook zu erstellen. Kopieren Sie den StyleBook-Inhalt und fügen Sie ihn in einen Texteditor ein, und speichern Sie die Datei dann unter lb-vserver.yaml. Citrix empfiehlt, den integrierten YAML-Validator in StyleBooks zu verwenden, um den YAML-Inhalt zu validieren und zu importieren.

Der vollständige Inhalt der Datei lb-vserver.yaml wird unten wiedergegeben:

name: lb-vserver
namespace: com.example.stylebook
version: "1.0"
display-name: Load Balancing Virtual Server (HTTP)
description: "This stylebook defines a very simple load balancing HTTP virtual server configuration"
schema-version: "1.0"

import-stylebooks:
 -
  namespace: netscaler.nitro.config
  version: "10.5"
  prefix: ns
 -
  namespace: com.citrix.adc.stylebooks
  version: "1.0"
  prefix: stlb

parameters:
 -
  name: name
  label: "Application Name"
  description: "Give a name to the application configuration."
  type: string
  required: true
 -
  name: vip-ipaddress
  label: "Load Balancer IP Address"
  description: "The Application VIP that clients access"
  type: ipaddress
  required: true
 -
  name: lb-alg
  label: LB Algorithm
  description: Load Balancing Algorithm
  type: string
  default: ROUNDROBIN
  allowed-values:
   - ROUNDROBIN
   - LEAST-CONNECTION

components:
 -
  name: lbvserver-comp
  description: This StyleBook component (a Builtin Nitro StyleBook) builds a Citrix ADC load balancing virtual server configuration object.
  type: ns::lbvserver
  properties:
   name: $parameters.name
   ipv46: $parameters.vip-ipaddress
   lbmethod: $parameters.lb-alg
   servicetype: HTTP
   port: 80
<!--NeedCopy-->

Um mit dem StyleBook Konfigurationen zu erstellen, müssen Sie es in Citrix ADM importieren und es dann verwenden. Weitere Informationen finden Sie unter Verwenden von benutzerdefinierten StyleBooks.

Sie können dieses StyleBook auch in andere StyleBooks importieren (mit dem Import-StyleBooks-Konstrukt). Oder Sie können dieses StyleBook so ändern, dass es weitere Parameter und Komponenten enthält, wie im nächsten Abschnitt beschrieben.

StyleBook zum Erstellen eines virtuellen Lastausgleichsservers