Application Delivery Management
Danke für das Feedback

Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)

StyleBook, um eine grundlegende Lastausgleichskonfiguration zu erstellen

Im vorherigen Beispiel haben Sie ein einfaches StyleBook erstellt, um einen virtuellen Lastausgleichsserver zu erstellen. Sie können dieses StyleBook unter einem anderen Namen speichern und es dann aktualisieren, um zusätzliche Parameter und Komponenten für eine grundlegende Load-Balancing-Konfiguration aufzunehmen. Speichern Sie diese StyleBook-Datei unter dem Namen basic-lb-config.yaml.

In diesem Abschnitt entwerfen Sie ein neues StyleBook, das eine Lastausgleichskonfiguration erstellt, die aus einem virtuellen Lastausgleichsserver, einer Dienstgruppe und einer Liste von Diensten besteht. Es bindet die Dienste auch an die Dienstgruppe und bindet die Dienstgruppe an den virtuellen Server.

Um dieses StyleBook zu erstellen, müssen Sie zunächst den Header-Abschnitt aktualisieren. Dieser Abschnitt ähnelt dem Abschnitt, den Sie für den Lastausgleich des virtuellen Servers StyleBook erstellt haben. Ändern Sie im Header-Abschnitt den Wert von name in basic-lb-config. Aktualisieren Sie außerdem die Beschreibung und den Anzeigenamen, um dieses StyleBook entsprechend zu beschreiben. Sie müssen den Namespace und die Versionswerte nicht ändern. Da Sie den Namen geändert haben, erstellt die Kombination aus Name, Namespace und Version eine eindeutige Kennung für dieses StyleBook im System.

name: basic-lb-config description: This StyleBook defines a simple load balancing configuration. display-name: Load Balancing Configuration namespace: com.example.stylebooks schema-version: "1.0" version: "0.1"

StyleBooks importieren

Der Abschnitt Import-StyleBooks bleibt unverändert. Es bezieht sich auf den netscaler.nitro.config-Namespace, um die Nitro-Konfigurationsobjekte zu verwenden.

import-stylebooks: - namespace: netscaler.nitro.config prefix: ns version: "10.5"

Parameter

Sie müssen den Parameterbereich aktualisieren, um zwei zusätzliche Parameter hinzuzufügen, um die Liste der Dienste oder Server und den Port zu definieren, auf dem die Dienste hören. Die ersten drei Parameter, name, ip und lb-alg, bleiben unverändert.

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 used for load balancing client requests between the application servers. allowed-values: - ROUNDROBIN - LEASTCONNECTION default: ROUNDROBIN - name: svc-servers type: ipaddress[] label: Application Server IPs description: The IP addresses of all the servers of this application required: true - name: svc-port type: tcp-port label: Server Port description: The TCP port open on the application servers to receive requests. default: 80

In diesem Beispiel wird der Parameter svc-servers hinzugefügt, um eine Liste von IP-Adressen der Dienste zu akzeptieren, die die Backend-Server der Anwendung repräsentieren. Dies ist ein obligatorischer Parameter, wie angegeben durch required: true. Der zweite Parameter, svc-port, gibt die Portnummer an, auf die die Server lauschen. Die Standard-Portnummer ist 80 für den svc-Port-Parameter, falls sie nicht vom Benutzer angegeben wurde.

Komponenten

Sie müssen auch den Komponentenabschnitt aktualisieren, um zusätzliche Komponenten so zu definieren, dass sie die beiden neuen Parameter verwenden und die vollständige Lastausgleichskonfiguration erstellen.

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

components: - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg components: - name: svcg-comp type: ns::servicegroup properties: name: $parameters.name + "-svcgrp" servicetype: HTTP components: - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $parent.parent.properties.name servicegroupname: $parent.properties.name - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: str($parameters.svc-port) servicegroupname: $parent.properties.name

In diesem Beispiel hat die ursprüngliche Komponente lbvserver-comp (aus dem vorherigen Beispiel) jetzt eine untergeordnete Komponente namens svcg-comp. Und die svcg-comp-Komponente enthält zwei untergeordnete Komponenten. Durch das Verschachteln einer Komponente innerhalb einer anderen Komponente kann die verschachtelte Komponente Konfigurationsobjekte erstellen, indem sie auf Attribute in der übergeordneten Komponente verweist. Die verschachtelte Komponente kann für jedes Objekt, das in der übergeordneten Komponente erstellt wurde, ein oder mehrere Objekte erstellen.

Die svcg-comp-Komponente wird verwendet, um eine Dienstgruppe auf der NetScaler ADC-Instanz zu erstellen, indem die Werte verwendet werden, die für die Attribute der Ressource “Servicegroup” bereitgestellt werden. In diesem Beispiel geben Sie einen statischen Wert für servicetype an, während name seinen Wert aus dem Eingabeparameter bezieht. Sie verweisen auf den im Parameter-Abschnitt definierten Parameternamen, indem Sie die Notation $parameters.name + „-svcgrp“ verwenden, wobei-svcgrp** an den benutzerdefinierten Namen angehängt (verkettet) wird.

Die Komponente svcg-comp hat zwei untergeordnete Komponenten, lbvserver-svg-binding-comp und members-svcg-comp.

Die erste untergeordnete Komponente, lbvserver-svg-binding-comp, wird verwendet, um ein Konfigurationsobjekt zwischen der von der übergeordneten Komponente erstellten Dienstgruppe und dem virtuellen Lastausgleichsserver (lbvserver) zu binden, der von der übergeordneten Komponente des übergeordneten Elements erstellt wurde. Die $parent Notation, auch übergeordnete Referenz genannt, wird verwendet, um auf Entitäten in den übergeordneten Komponenten zu verweisen. Beispielsweise bezieht sichservicegroupname: $parent.properties.name auf die Dienstgruppe, die von der übergeordneten Komponente svcg-comp erstellt wurde, und Name: $parent.parent.properties.name**bezieht sich auf den virtuellen Server, der von der übergeordneten Komponente lbvserver-compdes Elternteils erstellt wurde.**

Die members-svcg-Komponente wird verwendet, um Konfigurationsobjekte zwischen der Liste der Dienste an die von der übergeordneten Komponente erstellte Dienstgruppe zu binden. Die Erstellung mehrerer Bindungskonfigurationsobjekte wird erreicht, indem das repeat-Konstrukt von StyleBook verwendet wird, um über die Liste der Server zu iterieren, die im Parameter svc-Server angegeben ist. Während der Iteration erstellt diese StyleBook-Komponente ein Nitro-Konfigurationsobjekt vom Typ servicegroup_servicegroupmember_binding für jeden Dienst (im Repeat-Item-Konstrukt als srv bezeichnet) in der Dienstgruppe und setzt das ip-Attribut in jedem Nitro-Konfigurationsobjekt auf die IP-Adresse des entsprechenden Servers.

Im Allgemeinen können Sie die Konstrukte Repeat und Repeat Item in einer Komponente verwenden, damit diese Komponente mehrere Konfigurationsobjekte desselben Typs erstellt. Sie können dem Repeat-Item-Konstrukt einen Variablennamen zuweisen, z. B. srv, um den aktuellen Wert in der Iteration festzulegen. Dieser Variablenname wird in den Eigenschaften derselben Komponente oder in untergeordneten Komponenten als $<varname> bezeichnet , zum Beispiel $srv.

Im obigen Beispiel haben Sie Verschachtelung von Komponenten ineinander verwendet, um diese Konfiguration einfach zu konstruieren. In diesem speziellen Fall war das Verschachteln von Komponenten nicht die einzige Möglichkeit, die Konfiguration zu erstellen. Das gleiche Ergebnis hätten Sie auch ohne Verschachtelung erzielen können, wie unten gezeigt:

components: - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: str($parameters.svc-port) servicegroupname: $components.svcg-comp.properties.name - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $components.lbvserver-comp.properties.name servicegroupname: $components.svcg-comp.properties.name - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg - name: svcg-comp type: ns::servicegroup properties: name: $parameters.name + "-svcgrp" servicetype: HTTP

Hier befinden sich alle Komponenten auf der gleichen Ebene (d. h. sie sind nicht verschachtelt), aber das erzielte Ergebnis (die generierte Citrix ADC Konfiguration) ist mit dem der zuvor verwendeten verschachtelten Komponenten identisch. Auch die Reihenfolge, in der die Komponenten im StyleBook deklariert werden, wirkt sich nicht auf die Reihenfolge der Erstellung der Konfigurationsobjekte aus. In diesem Beispiel müssen die Komponenten svcg-comp und lbvserver-comp, obwohl sie zuletzt deklariert wurden, erstellt werden, bevor die zweite Komponente lbvserver-svg-binding-comperstellt wird, da es in der zweiten Komponente Vorwärtsverweise auf diese Komponenten gibt.

Hinweis

Konventionell werden die Namen von StyleBooks, Parametern, Ersetzungen, Komponenten und Ausgaben in Kleinbuchstaben geschrieben. Wenn sie mehrere Wörter enthalten, werden sie durch ein “-“ -Zeichen getrennt. Zum Beispiel „lb-bindings“, „app-name“, „rewrite-config“ und so weiter. Eine andere Konvention besteht darin, Komponentennamen mit der Zeichenfolge „-comp“ zu versehen.

Ausgaben

Der letzte Abschnitt, den Sie dem neuen StyleBook hinzufügen können, ist der Ausgabebereich, in dem Sie angeben, was dieses StyleBook seinen Benutzern (oder in anderen StyleBooks) zur Verfügung stellt, nachdem es zum Erstellen einer Konfiguration verwendet wird. Sie können beispielsweise im Abschnitt Ausgaben angeben, dass die Konfigurationsobjekte lbvserver und servicegroup verfügbar gemacht werden sollen, die von diesem StyleBook erstellt würden.

outputs: - name: lbvserver-comp value: $components.lbvserver-comp description: The component that builds the Nitro lbvserver configuration object - name: servicegroup-comp value: $components.svcg-comp description: The component that builds the Nitro servicegroup configuration object

Der Ausgabebereich eines StyleBook ist optional. Ein StyleBook muss keine Ausgaben zurückgeben. Durch die Rückgabe einiger interner Komponenten als Ausgabe erhalten StyleBooks, die dieses StyleBook importieren, jedoch mehr Flexibilität, wie Sie beim Erstellen eines zusammengesetzten StyleBooks sehen können.

Hinweis

Es empfiehlt sich, eine gesamte Komponente des StyleBook im Ausgabe-Abschnitt verfügbar zu machen und nicht nur eine einzelne Eigenschaft einer Komponente (z. B. die gesamte $components.lbvserver-comp und nicht nur den Namen $components.lbvserver-comp.properties.name verfügbar zu machen). Fügen Sie der Ausgabe auch eine Beschreibung hinzu, die erklärt, was die spezifische Ausgabe darstellt.

Erstellen Sie Ihr StyleBook

Nachdem Sie alle erforderlichen Abschnitte dieses StyleBooks definiert haben, fügen Sie sie alle zusammen, um Ihr zweites StyleBook zu erstellen. Sie haben diese StyleBook-Datei bereits als basic-lb-config.yamlgespeichert. Citrix empfiehlt, dass Sie den integrierten YAML-Validator auf der StyleBooks-Seite verwenden, um den YAML-Inhalt zu validieren und zu importieren.

Der vollständige Inhalt der Datei basic-lb-config.yaml ist unten wiedergegeben:

name: basic-lb-config namespace: com.example.stylebooks version: "0.1" display-name: Load Balancing Configuration description: This StyleBook defines a simple load balancing configuration. schema-version: "1.0" import-stylebooks: - namespace: netscaler.nitro.config version: "10.5" prefix: ns parameters: - name: name type: string label: Application Name description: Give a name to the application configuration. required: true - name: ip type: ipaddress label: Application Virtual IP (VIP) description: The Application VIP that clients access required: true - name: lb-alg type: string label: LoadBalancing Algorithm description: Choose the loadbalancing algorithm (method) used for loadbalancing client requests between the application servers. allowed-values: - ROUNDROBIN - LEASTCONNECTION default: ROUNDROBIN - name: svc-servers type: ipaddress[] label: Application Server IPs description: The IP addresses of all the servers of this application required: true components: - name: lbvserver-comp type: ns::lbvserver properties: name: $parameters.name + "-lb" servicetype: HTTP ipv46: $parameters.ip port: 80 lbmethod: $parameters.lb-alg - name: svcg-comp type: ns::servicegroup properties: servicegroupname: $parameters.name + "-svcgrp" servicetype: HTTP - name: lbvserver-svg-binding-comp type: ns::lbvserver_servicegroup_binding properties: name: $components.lbvserver-comp.properties.name servicegroupname: $components.svcg-comp.properties.servicegroupname - name: members-svcg-comp type: ns::servicegroup_servicegroupmember_binding repeat: $parameters.svc-servers repeat-item: srv properties: ip: $srv port: 80 servicegroupname: $components.svcg-comp.properties.servicegroupname outputs: - name: lbvserver-comp value: $components.lbvserver-comp description: The component that builds the Nitro lbvserver configuration object - name: servicegroup-comp value: $components.svcg-comp description: The component that builds the Nitro servicegroup configuration object

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 und seine Eigenschaften wie im nächsten Abschnitt beschrieben verwenden.

Die offizielle Version dieses Inhalts ist auf Englisch. Für den einfachen Einstieg wird Teil des Inhalts der Cloud Software Group Dokumentation maschinell übersetzt. Cloud Software Group hat keine Kontrolle über maschinell übersetzte Inhalte, die Fehler, Ungenauigkeiten oder eine ungeeignete Sprache enthalten können. Es wird keine Garantie, weder ausdrücklich noch stillschweigend, für die Genauigkeit, Zuverlässigkeit, Eignung oder Richtigkeit von Übersetzungen aus dem englischen Original in eine andere Sprache oder für die Konformität Ihres Cloud Software Group Produkts oder Ihres Diensts mit maschinell übersetzten Inhalten gegeben, und jegliche Garantie, die im Rahmen der anwendbaren Endbenutzer-Lizenzvereinbarung oder der Vertragsbedingungen oder einer anderen Vereinbarung mit Cloud Software Group gegeben wird, dass das Produkt oder den Dienst mit der Dokumentation übereinstimmt, gilt nicht in dem Umfang, in dem diese Dokumentation maschinell übersetzt wurde. Cloud Software Group kann nicht für Schäden oder Probleme verantwortlich gemacht werden, die durch die Verwendung maschinell übersetzter Inhalte entstehen können.
StyleBook, um eine grundlegende Lastausgleichskonfiguration zu erstellen