Einen Composite-StyleBook erstellen
Ein wichtiges und leistungsstarkes Merkmal von StyleBooks ist, dass sie als Bausteine für andere StyleBooks verwendet werden können. Ein StyleBook kann in einen anderen StyleBook importiert und als Typ bezeichnet werden, der von Komponenten des zweiten StyleBooks verwendet wird, ähnlich einem integrierten Nitro-StyleBook.
Sie können beispielsweise den basic-lb-config StyleBook, den Sie im vorherigen Abschnitt erstellt haben, verwenden, um einen weiteren StyleBook namens composite-example zu erstellen. Um den „basic-lb-config“ StyleBook zu verwenden, müssen Sie ihn im neuen StyleBook im Abschnitt import-stylebooks importieren.
Erstellen Sie Ihren StyleBook
Der neue StyleBook würde wie folgt aussehen:
name: composite-example
namespace: com.example.stylebooks
version: "0.1"
display-name: Virtueller Lastausgleichsserver (HTTP/RoundRobin)
description: Dieser StyleBook definiert eine RoundRobin-Lastausgleichskonfiguration mit einem 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: Anwendungsname
description: Geben Sie der Anwendungskonfiguration einen Namen.
required: true
-
name: ip
type: ipaddress
label: Virtuelle IP (VIP) der Anwendung
description: Die Anwendungs-VIP, auf die Clients zugreifen
required: true
-
name: svc-servers
type: ipaddress[]
label: IP-Adressen der Anwendungsserver
description: Die IP-Adressen aller Server dieser Anwendung
required: true
-
name: response-code
type: string[]
label: Liste der Antwortcodes
description: Liste der Antwortcodes – Geben Sie eine Liste der Antwortcodes als Ganzzahl an.
components:
-
name: basic-lb-comp
type: stlb::basic-lb-config
description: Der Typ dieser Komponente ist ein weiterer StyleBook, der die NetScaler lbvserver-, Dienstgruppen- und Dienstkonfigurationsobjekte erstellt.
properties:
name: $parameters.name
ip: $parameters.ip
svc-servers: $parameters.svc-servers
-
name: monit-comp
type: ns::lbmonitor
description: Diese Komponente ist ein grundlegender Nitro-Typ (ein integrierter StyleBook), der das NetScaler-Monitor-Konfigurationsobjekt erstellt.
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 den basic-lb-config StyleBook, indem Sie seinen Namespace und seine Version verwenden, auf die mit dem Präfix „stlb“ verwiesen wird.
Im Abschnitt components sind zwei Komponenten definiert. Die erste Komponente ist vom Typ stlb::basic-lb-config, wobei „basic-lb-config“ der Name des StyleBooks ist, den Sie unter StyleBook zum Erstellen einer grundlegenden Lastausgleichskonfiguration erstellt haben. 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 StyleBooks verwenden (sowohl erforderliche als auch optionale). Anstatt einen lbvserver, eine Dienstgruppe sowie Dienst- und Dienstgruppenbindungen neu zu erstellen, importieren Sie den StyleBook, der all dies als Komponente erledigt, und verwenden ihn, um diese Konfigurationsobjekte im neuen StyleBook zu erstellen.
Der StyleBook fügt eine zweite Komponente „monit-comp“ hinzu, die die Attribute der Nitro-Ressource „lbmonitor“ (ein integrierter StyleBook) verwendet, um ein Monitor-Konfigurationsobjekt zu erstellen. Er verfügt auch über eine Unterkomponente „monit-svcgrp-bind-comp“, um das Bindungskonfigurationsobjekt zu erstellen, das den Monitor an die in der ersten Komponente erstellte Dienstgruppe bindet. Da die im „basic-lb-config“ StyleBook erstellte Dienstgruppenkomponente als Ausgabe verfügbar gemacht wird, kann dieser StyleBook über den Ausdruck $components.basic-lb-comp.outputs.servicegroup-comp darauf zugreifen. Dies ist ein Beispiel dafür, wie der outputs-Abschnitt von den importierenden StyleBooks verwendet werden kann, um auf Komponenten in den importierten StyleBooks zuzugreifen, auf die sie sonst keinen Zugriff gehabt hätten.
Kopieren Sie anschließend den StyleBook-Inhalt in einen Texteditor und speichern Sie die Datei als composite-example.yaml. Stellen Sie sicher, dass Sie den YAML-Inhalt validieren, bevor Sie die Datei in NetScaler ADM importieren. Importieren Sie sie dann in NetScaler ADM und erstellen Sie eine oder mehrere Konfigurationen mit diesem StyleBook.
Citrix empfiehlt, den integrierten YAML-Validator in StyleBooks zu verwenden, um den YAML-Inhalt zu validieren und zu importieren.