Erstellen eines zusammengesetzten StyleBook

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 ähnlich einem Nitro eingebauten StyleBook verwendet wird.

Beispielsweise können Sie das Basic-lb-config StyleBook verwenden, das Sie im vorherigen Abschnitt erstellt haben, um ein anderes StyleBook namens composite-example zu erstellen. Um das StyleBook basic-lb-config zu verwenden, müssen Sie es in das neue StyleBook im Import-Stylebook-Sektion 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

Im Abschnitt import-stylebooks importieren Sie das basic-lb-config StyleBook mithilfe des Namensraums und der Version, die mit dem Präfix stlb bezeichnet wird.

Im Komponentenabschnitt werden zwei Komponenten definiert. Die erste Komponente ist vom Typ stlb:: basic-lb-config, wobei basic-lb-config der Name des StyleBook ist, in dem Sie erstellt habenStyleBook, 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 einen beliebigen Parameter des StyleBook verwenden (sowohl erforderlich als auch optional). Anstatt einen lbvserver, eine Dienstgruppe sowie Dienst- und Servicegruppenbindungen 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-compdarauf 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 und fügen Sie ihn in einen Texteditor ein, und speichern Sie die Datei als composite-example.yaml. Überprüfen Sie den YAML-Inhalt, bevor Sie die Datei in Citrix ADM importieren. Importieren Sie es dann in Citrix ADM und erstellen Sie eine oder mehrere Konfigurationen mithilfe dieses StyleBook.

Citrix empfiehlt, den integrierten YAML-Validator in StyleBooks zu verwenden, um den YAML-Inhalt zu validieren und zu importieren.

Erstellen eines zusammengesetzten StyleBook