Application Delivery Management

StyleBook zum Erstellen eines virtuellen Lastausgleichsservers

In diesem Beispiel entwerfen Sie ein einfaches StyleBook, das einen virtuellen Lastausgleichsserver vom Typ HTTP-Protokoll erstellt und auf Port 80 überwacht. Die Parameter für den virtuellen Servernamen, die IP-Adresse und die Load-Balancing-Methode akzeptieren benutzerdefinierte Werte, d. h. sie sind die Parameter des StyleBook.

Die ersten sechs Zeilen eines StyleBook bilden den Header-Bereich. In diesem Beispiel ist der Header-Abschnitt 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 Header-Abschnitt enthält die folgenden Details:

  • name: Ein Name für dieses StyleBook.

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

  • displayname: Ein beschreibender Name für das StyleBook, das auf NetScaler ADM angezeigt wird.

  • Namespace: Ein Namespace ist Teil einer eindeutigen Kennung für ein StyleBook, um Namenskollisionen zu vermeiden.

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

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

Die Kombination aus Name, Namespace und Version identifiziert ein StyleBook im System eindeutig. Sie können nicht zwei StyleBooks mit derselben Kombination aus Name, Namespace und Version in NetScaler ADM haben. 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

Bedenken Sie, dass Sie Ihr StyleBook aktualisiert haben und eine aktualisierte Versionsnummer haben. Wenn Sie nun in anderen StyleBooks auf dieses StyleBook verweisen (das heißt, wenn Sie es importieren), stellen Sie sicher, dass Sie die Versionsnummer auch in anderen StyleBooks aktualisieren, damit diese die richtige Version des importierten StyleBooks verwenden.

StyleBooks importieren

Der Abschnitt hinter dem Header heißt „Import-Stylebooks“. In diesem Abschnitt müssen Sie den Namespace und die Versionsnummer jedes anderen StyleBooks 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 ist 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 NetScaler ADC NITRO-Typen, z. B. LBVServer.Da Softwareversionen 10.5 und höher unterstützt werden, können Sie Ihr StyleBook verwenden, um Konfigurationen auf jeder NetScaler ADC-Instanz zu erstellen und auszuführen, auf der Version 10.5 und höher ausgeführt wird.

Das im Abschnitt import-stylebooks verwendete Präfix ist eine Abkürzung für die Kombination von Namespace und Version. In diesem Fall bezieht sich ns auf netscaler.nitro.config der Version 10.5. In den späteren Abschnitten Ihres StyleBooks können Sie, anstatt den Namespace und die Version zu verwenden, um auf das importierte StyleBook zu verweisen, die im obigen Beispiel ausgewählt wurde, z. B. ns, verwenden.

Die in den StyleBooks verwendete Version ist die NetScaler 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 eine höhere Version als die importierten StyleBooks hat. Beispielsweise kann ein StyleBook, das auf Nitro Version 10.5 basiert, nicht von einem StyleBook abhängig sein oder ein StyleBook 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 Nitro-Komponenten nicht direkt definieren muss, sondern StyleBooks importieren kann (abhängig von), 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. Sie als StyleBook-Entwickler müssen entscheiden, welche Eingaben die Benutzer Ihres StyleBooks angeben sollen. In diesem Beispiel haben Sie Ihr StyleBook so aufgebaut, dass die Benutzer den Namen des virtuellen Servers, seine IP-Adresse und die Lastausgleichsmethode angeben müssen.

Der Abschnitt “Parameter” 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 NetScaler 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 NetScaler 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 Namensattributwerte gekennzeichnet sind: Name für den virtuellen Servernamen, IP für die IP-Adresse des virtuellen Servers und lb-alg für die Lastausgleichsmethode.

  • Typ. Art des Werts, den diese Parameter annehmen können. Beispielsweise können name und lb-alg einen Zeichenfolgenwert annehmen und der IP-Wert muss vom Typ IP-Adresse sein. Parameter in einem StyleBook können von einem der folgenden integrierten Typen sein:
  • string. Eine Reihe von Charakteren. 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.
  • boolesch. Kann entweder wahr oder falsch sein. Beachten Sie auch, dass alle Literale von YAML als boolesche Werte betrachtet werden (z. B. Ja oder Nein).
  • ipadresse. Eine Zeichenfolge, die eine gültige IPv4- oder IPv6-Adresse darstellt.
  • TCP-Anschluss. Eine Zahl zwischen 0 und 65535, die einen TCP- oder UDP-Port darstellt.
  • password. Ein undurchsichtiger/geheimer Zeichenfolgenwert. Wenn NetScaler ADM einen Wert für diesen Parameter anzeigt, wird er als Sternchen (*****) angezeigt.
  • certfile. Zertifikatsdatei.
  • Schlüsseldatei. Private Schlüsseldatei des Zertifikats.
  • -Datei. Ein Parameter dieses Typs erfordert, dass der Benutzer eine Datei hochlädt, z. B. ein Zertifikat oder eine 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 er auf true gesetzt ist, ist der Parameter obligatorisch und der Benutzer muss beim Erstellen von Konfigurationen mit diesem StyleBook einen Wert für diesen Parameter angeben. 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 der Standardwert beispielsweise ROUNDROBIN.

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

Wenn Sie Ihr StyleBook importieren und es verwenden, zeigt NetScaler ADM ein Formular mit diesen drei Parametern an. Die für Name und IP angezeigten Felder ermöglichen die Eingabe von Werten vom Typ Zeichenfolge und IP-Adresse. 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, in anderen StyleBooks definierte Parameter 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 Hauptattribute 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.

  • Verbundtyp. Bei diesem Typ handelt es sich um das StyleBook, das Sie erstellt und in NetScaler ADM importiert haben, oder um das StandardstyleBook, das mit NetScaler ADM ausgeliefert wird. Weitere Informationen zu Composite StyleBooks finden Sie unter Erstellen eines Composite 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 sich auf den Namespace netscaler.nitro.config und Version 10.5 bezieht, die Sie im Abschnitt Import-Stylebooks angegeben haben, und „lbvserver“ eine Nitro-Ressource in diesem Namespace ist.

Die hier definierten Eigenschaften sind die Attribute der Ressource lbvserver. Weitere Informationen über alle verfügbaren NetScaler ADC Nitro-Ressourcen und deren Attribute finden Sie in der NetScaler 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 alle erforderlichen Abschnitte dieses StyleBooks definiert haben, fügen Sie sie alle zusammen, um Ihr erstes StyleBook zu erstellen. Kopieren Sie den StyleBook-Inhalt, fügen Sie ihn in einen Texteditor ein, und speichern Sie die Datei dann unter dem Namen 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 ist 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 NetScaler 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