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 datum
Parameter verwendet, um eine von ADM verwaltete NetScaler-Instanz auszuwählen. Mit der managed-adc
integrierten 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.
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 parameters
einen Sammlungstyp definieren, können die StyleBook-Benutzer die NetScaler-Instanz und eine bestimmte Entität aus einer Sammlung auf dieser Instanz auswählen.
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.