StyleBook-Konfiguration

Verwenden Sie eine NetScaler-Instanz als Datenquelle

Sie können die verwalteten NetScaler-Instanzen als Datenquellen verwenden. managed-adc ist ein integrierter Datenquellentyp, der problemlos als Datenquellen in ADM verwendet werden kann. Jede verwaltete NetScaler-Instanz in der NetScaler Console ist standardmäßig eine Datenquelle. Sie können damit beginnen, diese Datenquellen in Ihren StyleBooks zu verwenden, wenn Sie beim Erstellen von Konfigurationspaketen Daten aus einem vorhandenen NetScaler benötigen, der von NetScaler Console verwaltet wird.

Geben Sie in der StyleBook-Definition den integrierten Typparameter datum an. Sie können also die Datenquellentypen in Ihrem StyleBook verwenden. Die StyleBook-Benutzer können eine Datenquelle auswählen, die zum Abrufen von Daten aus dieser Quelle verwendet werden kann.

Verwenden der integrierten Datenquelle ohne Sammlung

parameters:
  -
    name: selected-adc
    label: Select an existing NetScaler
    type: datum
    required: true
    data-source:
      type: managed-adc
<!--NeedCopy-->

Im Beispiel wird der datumParameter verwendet, um eine von ADM verwaltete NetScaler-Instanz auszuwählen. Mit der managed-adcintegrierten Datenquelle können Sie Daten von jeder NetScaler-Instanz abrufen, die von NetScaler Console verwaltet wird.

In Ihrem StyleBook können Sie von der ausgewählten NetScaler-Instanz aus auf jede Konfiguration zugreifen. Und Sie können diese Konfiguration verwenden, wenn Sie Konfigurationen auf demselben NetScaler oder einer anderen NetScaler-Instanz erstellen oder aktualisieren; das hängt von der ausgewählten NetScaler-Zielinstanz ab.

Wählen Sie die Sammlung aus einer Datenquelleaus:

Verwenden Sie in der ausgewählten NetScaler-Instanz den folgenden Ausdruck, um auf eine Sammlung zuzugreifen:

$parameters.selected-adc.collections.<collection-name>
<!--NeedCopy-->

Beispiel:

$parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->

Dieser Ausdruck gibt die Liste der lbvserver-Entitäten auf der ausgewählten NetScaler-Instanz zurück. Sie können beispielsweise über diese Liste iterieren, um eine bestimmte Option auszuwählen lbvserver, die eine bestimmte Bedingung erfüllt.

Beispiel StyleBook ohne Sammlung

name: add-vservers-from-managed-adc-instances
namespace: com.citrix.adc.stylebooks
version: "1.0"
schema-version: "1.0"

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

parameters:
    -
      name: selected-adc
      label: Select a NetScaler instance
      type: datum
      required: true
      data-source:
        type: "managed-adc"

components:
  -
    name: sslvserver-comp
    type: ns::sslvserver
    repeat: $parameters.selected-adc.collections.lbvserver
    repeat-item: lbvs
    repeat-condition: $lbvs.attributes.servicetype == "SSL"
    properties:
      name: $lbvs.attributes.name
      ssl2: DISABLED
      ssl3: DISABLED
      tls1: DISABLED
      tls11: ENABLED
      tls12: ENABLED
<!--NeedCopy-->

Die GUI des Konfigurationspakets zeigt die verwalteten NetScaler-Instanzen von NetScaler Console an, und StyleBook-Benutzer können beim Erstellen oder Aktualisieren des Konfigurationspakets einen beliebigen NetScaler auswählen.

Integrierte NetScaler-Datenquelle ohne Erfassung

Dieses StyleBook verwendet den ausgewählten NetScaler und iteriert über alle lbvserver-Entitäten. Es wählt die virtuellen SSL-Server aus und legt die zulässigen SSL-Protokollversionen auf jedem virtuellen Server fest.

Mit dem folgenden Ausdruck können Sie durch die Liste der lbvserver-Entitäten in der NetScaler-Instanz iterieren.

repeat: $parameters.selected-adc.collections.lbvserver
<!--NeedCopy-->
  • collections: Bezieht sich auf alle Entitätstypen auf der NetScaler-Instanz. Beispiel: csvserver, lbmonitor, servicegroup usw.

  • lbvserver: Bezieht sich auf die Liste der virtuellen Serverentitäten mit Lastenausgleich in der NetScaler-Instanz.

Verwenden der integrierten Datenquelle mit Sammlung

parameters:
  -
    name: selected-lbvserver
    label: Select an existing lbvserver
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
<!--NeedCopy-->

In diesem Beispiel wird der Parameter datum verwendet, damit ein Benutzer sowohl die NetScaler-Instanz als auch eine bestimmte lbvserver-Instanz aus dem Datenquellentyp managed-adc auswählen kann.

Wenn Sie im Abschnitt parameterseinen Sammlungstyp definieren, können die StyleBook-Benutzer die NetScaler-Instanz und eine bestimmte Entität aus einer Sammlung auf dieser Instanz auswählen.

Integrierte Instanzdatenquelle mit Sammlung

Wählen Sie ein Attribut der Sammlung aus:

Wenn der StyleBook-Benutzer einen virtuellen Server auswählt, kann der folgende Ausdruck in Ihrem StyleBook auf jedes Attribut des ausgewählten Elements zugreifen.

$parameters.selected-lbvserver.attributes.<attribute-name>
<!--NeedCopy-->

In diesem Beispiel ist die Auswahl datum lbvserver. Sie können also auf jedes Attribut der NetScaler-lbvserver-Entität wie name, servicetype, ipv46 usw. zugreifen.

Beispiel:

$parameters.selected-lbvserver.attributes.ipv46
<!--NeedCopy-->

Dieser Ausdruck ruft die IP des ausgewählten virtuellen Lastausgleichsservers ab. Weitere Informationen zu den NetScaler-Entitäten (Sammlungen) und ihren Attributen finden Sie in der NetScaler NITRO-API-Referenz.

Wählen Sie eine Liste der Sammlung aus:

Sie können einem StyleBook-Benutzer nicht nur die Auswahl bestimmter Entitäten auf einer verwalteten NetScaler-Instanz ermöglichen, sondern auch auf jede Entität aus derselben oder verschiedenen Sammlungen in der ausgewählten NetScaler-Instanz zugreifen. Um auf eine andere Sammlung auf dieser NetScaler-Instanz zuzugreifen, verwenden Sie den folgenden Ausdruck im Abschnittcomponents:

$parameters.selected-lbvserver.datasource.collections.<collection-name>
<!--NeedCopy-->

Beispiel:

$parameters.selected-lbvserver.datasource.collections.csvserver
<!--NeedCopy-->

Dieser Ausdruck gibt die Liste der virtuellen Server zum Umschalten von Inhalten aus der ausgewählten NetScaler-Instanz zurück.

Und der folgende Ausdruck gibt eine Liste aller Bindungen zwischen lbvservers und servicegroups zurück:

$parameters.selected-lbvserver.datasource.collections.lbvserver_servicegroup_binding
<!--NeedCopy-->

Beispiel StyleBook mit einer Sammlung

Das Folgende ist ein Beispiel für ein StyleBook, um zu demonstrieren, wie die verwaltete NetScaler-Instanz als Datenquelle verwendet wird:

---
name: bind-lb-to-servicegroup-using-ADC-as-datasource
namespace: com.citrix.adc.stylebooks
version: "1.1"
display-name: "HTTP/SSL LoadBalancing StyleBook with Service Binding"
description: "This stylebook defines a typical Load Balanced Application configuration where we allow the user to select an existing lbvserver on the NetScaler using datum type parameter. Then a servicegroup for the selected lb is created if it does not exist on the NetScaler. Finally, the selected lbvserver is bound to the service "
schema-version: "1.0"
import-stylebooks:
  -
    namespace: netscaler.nitro.config
    prefix: ns
    version: "10.5"

parameters:
  -
    name: selected-vserver
    label: "Select an Existing VServer"
    description: "Load Balancing Application Vservers to be bound to service on the ADC"
    type: datum
    required: true
    data-source:
      type: managed-adc
      collection: lbvserver
  -
    name: services
    label: Services
    type: object[]
    required: true
    parameters:
      -
        name: ip
        label: IP address
        type: ipaddress
        required: true
      -
        name: port
        label: Port
        type: tcp-port
        required: true

components:
  -
    name: servicegroup-discovery-comp
    type: object
    repeat: $parameters.selected-vserver.datasource.collections.servicegroup
    repeat-item: svcgrp
    repeat-condition: $svcgrp.attributes.servicegroupname ==  $parameters.selected-vserver.attributes.name + "-svcgrp"
    properties:
      servicegroupname: $svcgrp.attributes.servicegroupname
  -
    name: servicegroup-creation-if-not-exists-comp
    type: ns::servicegroup
    condition: not exists($components.servicegroup-discovery-comp)
    properties:
      servicegroupname: $parameters.selected-vserver.attributes.name + "-svcgrp"
      servicetype: $parameters.selected-vserver.attributes.servicetype
  -
    name: servicegroupmember-comp
    type: ns::servicegroup_servicegroupmember_binding
    repeat: $parameters.services
    repeat-item: service
    properties:
      servicegroupname: if-then-else($components.servicegroup-discovery-comp, $components.servicegroup-discovery-comp.properties.servicegroupname, $components.servicegroup-creation-if-not-exists-comp.properties.servicegroupname)
      ip: $service.ip
      port: $service.port
<!--NeedCopy-->

In diesem StyleBook prüft der Abschnitt components auf einen Namen der Dienstgruppe, der mit dem ausgewählten Namen des virtuellen Lastausgleichsservers übereinstimmt, der mit svcgrp verkettet ist.

Wenn der Name des ausgewählten virtuellen Lastausgleichsservers lautet lbv1, sucht dieses StyleBook nach der Dienstgruppe mit dem Namen lbv1-svcgrp. Wenn es nicht gefunden wird, erstellt es eine Dienstgruppe lbv1-svcgrp und verbindet sich mit dem virtuellen Server lbv1.

Der folgende Ausdruck ruft die Liste der Dienstgruppen in der NetScaler-Instanz ab.

repeat: $parameters.selected-vserver.datasource.collections.servicegroup
<!--NeedCopy-->

In diesem Ausdruck gilt:

  • datasource: Bezieht sich auf die ausgewählte NetScaler-Instanz, die von ADM verwaltet wird.

  • collections: Bezieht sich auf alle Entitäten in der NetScaler-Instanz.

  • servicegroup: Bezieht sich auf die Dienstgruppen in der NetScaler-Instanz.

Verwenden Sie eine NetScaler-Instanz als Datenquelle