Zusammengesetztes StyleBook erstellen
Eine wichtige und leistungsstarke Funktion von StyleBooks ist, dass sie als Bausteine für andere StyleBooks verwendet werden können. Ein StyleBook kann in ein anderes StyleBook importiert werden und es kann als ein Typ bezeichnet werden, der von Komponenten des zweiten StyleBook verwendet wird, ähnlich wie ein in Nitro integriertes StyleBook.
Sie können beispielsweise das StyleBookbasic-lb-configverwenden, das Sie im vorherigen Abschnitt erstellt haben, um ein weiteres StyleBook namens composite-example zu erstellen. Um das StyleBook “basic-lb-config” verwenden zu können, müssen Sie es in das neue StyleBook im Bereich import-stylebooks importieren.
Erstellen Sie Ihr StyleBook
Das neue StyleBook würde wie folgt aussehen:
name: composite-example
namespace: com.example.stylebooks
version: "0.1"
display-name: Load Balancing Virtual Server (HTTP/RoundRobin)
description: This StyleBook defines a RoundRobin load balancing configuration with a monitor.
schema-version: "1.0"
import-stylebooks:
-
namespace: netscaler.nitro.config
version: "10.5"
prefix: ns
-
namespace: com.example.stylebooks
version: "0.1"
prefix: stlb
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: svc-servers
type: ipaddress[]
label: Application Server IPs
description: The IP addresses of all the servers of this application
required: true
-
name: response-code
type: string[]
label: List of Response Codes
description: List of Response Codes - Provide a list of response codes in integer.
components:
-
name: basic-lb-comp
type: stlb::basic-lb-config
description: This component's type is another StyleBook that builds the NetScaler lbvserver, servicegroups and services configuration objects.
properties:
name: $parameters.name
ip: $parameters.ip
svc-servers: $parameters.svc-servers
-
name: monit-comp
type: ns::lbmonitor
description: This component is a basic Nitro type (a Builtin StyleBook) that builds the NetScaler monitor configuration object.
properties:
monitorname: $parameters.name + "-mon"
type: HTTP
respcode: $parameters.response-code
httprequest: "'GET /'"
lrtm: ENABLED
secure: "YES"
components:
-
name: monit-svcgrp-bind-comp
type: ns::servicegroup_lbmonitor_binding
properties:
servicegroupname: $components.basic-lb-comp.outputs.servicegroup-comp.properties.servicegroupname
monitor_name: $parent.properties.monitorname
<!--NeedCopy-->
Im Abschnitt import-stylebooks importieren Sie das StyleBook basic-lb-config, indem Sie seinen Namespace und seine Version verwenden, auf die mit dem Präfix „stlb“ verwiesen wird.
Im Komponentenabschnitt werden zwei Komponenten definiert. Die erste Komponente ist vom Typ stlb: :basic-lb-config, wobei “basic-lb-config” der Name des StyleBooks ist, das Sie in StyleBook erstellt haben, um eine grundlegende Lastausgleichskonfiguration zu erstellen. Die für diese Komponente definierten Eigenschaften entsprechen den obligatorischen Parametern, die im Basic-lb-config StyleBook deklariert sind. Sie können jedoch jeden Parameter des StyleBook verwenden (sowohl erforderlich als auch optional). Anstatt einen lbvserver, eine Dienstgruppe sowie Dienst- und Dienstgruppenbindungen neu zu erstellen, importieren Sie das StyleBook, das all dies tut, als Komponente und verwenden es, um diese Konfigurationsobjekte im neuen StyleBook zu erstellen.
StyleBook fügt eine zweite Komponente „monit-comp“ hinzu, die die Attribute der Nitro-Ressource „lbmonitor“ (ein integriertes StyleBook) verwendet, um ein Monitor-Konfigurationsobjekt zu erstellen. Es hat auch eine Unterkomponente „monit-svcgrp-bind-comp“, um das Bindungskonfigurationsobjekt zu erstellen, das den Monitor an die in der ersten Komponente erstellte Servicegruppe bindet. Da die im StyleBook „basic-lb-config“ erstellte Servicegroup-Komponente als Ausgabe verfügbar gemacht wird, kann dieses StyleBook mit dem Ausdruck $components.basic-lb-comp.outputs.servicegroup-comp darauf zugreifen. Dies ist ein Beispiel dafür, wie der Ausgabeabschnitt vom importierenden StyleBooks verwendet werden kann, um Zugriff auf Komponenten in den importierten StyleBooks zu haben, auf die sie sonst nicht zugreifen können.
Kopieren Sie anschließend den StyleBook-Inhalt, fügen Sie ihn in einen Texteditor ein und speichern Sie die Datei dann unter dem Namen composite-example.yaml. Überprüfen Sie den YAML-Inhalt, bevor Sie die Datei in NetScaler ADM importieren. Importieren Sie es dann in NetScaler ADM und erstellen Sie mit diesem StyleBook eine oder mehrere Konfigurationen.
Citrix empfiehlt, den integrierten YAML-Validator in StyleBooks zu verwenden, um den YAML-Inhalt zu validieren und zu importieren.