Citrix ADC
AnbieterCitrix hat einen benutzerdefinierten Terraform-Anbieter zur Automatisierung von Citrix ADC-Bereitstellungen und -Konfigurationen entwickelt. Mit Terraform können Sie Ihre ADCs für verschiedene Anwendungsfälle wie Lastausgleich, SSL, Content Switching, GSLB, WAF usw. individuell konfigurieren.
Erfahren Sie hier mehr über Citrix ADC Automation
„Informationen zur Bereitstellung von Citrix ADC in der Public Cloud – AWS und Azure finden Sie unter Cloud-Skripte im Github-Repo Terraform-Cloud-Scripts.
✉️ Bei unmittelbaren Problemen oder Hilfe wenden Sie sich bitte an [email protected]!
remote-exec
für einmalige Aufgaben Terraform ist ein Open-Source-Infrastruktur-as-Code-Softwaretool, das einen konsistenten CLI-Workflow zur Verwaltung Hunderter Cloud-Dienste bietet. Terraform kodiert Cloud-APIs in deklarative Konfigurationsdateien. Terraform kann zum Bereitstellen und Konfigurieren von ADC verwendet werden. Die Konfiguration von Citrix ADC über Terraform bietet mehrere Vorteile.
citrixadc
Ordner – Enthält die gesamte ADC-Ressourcenbibliothek, die wir über Terraform unterstützen. Diese Ressourcenbibliotheken rufen intern NITRO APIS auf, um den Ziel-ADC zu konfigurieren.examples
– Enthält die Beispiele für Benutzer zur Verwendung verschiedener ADC-Ressourcen. Der Ordner „simple_lb“ enthält beispielsweise die Datei „resources.tf“, die veranschaulicht, wie die Ressource „citrixadc_lbvserver“ zum Erstellen eines Lastausgleichs-VServers auf dem Ziel-ADC verwendet werden kann. Ebenso enthalten verschiedene Ordner Beispiele zum Definieren verschiedener Ressourcen. Von den Benutzern wird erwartet, dass sie diese Beispiele überprüfen und ihre gewünschten ADC-Konfigurationen definieren.docs
Ordner – https://github.com/citrix/terraform-provider-citrixadc/tree/master/docs/resources – enthält die Dokumentation aller von Terraform unterstützten Ressourcenkonfigurationen. Lesen Sie hier, um die verschiedenen Argumente und Werte zu verstehen, die eine bestimmte Ressource annimmt. provider.tf
enthält die Informationen zum Ziel-ADC, auf den Sie die Konfiguration anwenden möchten.
provider "citrixadc" {
username = " ${ var . ns_user } " # You can optionally use `NS_LOGIN` environment variables.
password = " ${ var . ns_password } " # You can optionally use `NS_PASSWORD` environment variables.
endpoint = " http://10.71.136.250/ " # You can optionally use `NS_URL` environment variables.
}
Wir können eine https
URL verwenden und das nicht vertrauenswürdige Autoritätszertifikat auf dem Citrix ADC akzeptieren, indem wir insecure_skip_verify = true
angeben
Um https
zu verwenden, ohne insecure_skip_verify = true
festlegen zu müssen, befolgen Sie diese Anleitung zum Ersetzen des Standard-TLS-Zertifikats durch eines einer vertrauenswürdigen Zertifizierungsstelle.
Die Verwendung von https
wird bevorzugt. Die Verwendung von http
führt dazu, dass alle Provider-Konfigurationsvariablen sowie Ressourcenvariablen im Klartext übertragen werden. Jeder, der den HTTP-Datenstrom beobachtet, kann sensible Werte wie das Provider-Passwort analysieren.
Vermeiden Sie die Speicherung von Anbieteranmeldeinformationen im lokalen Bundesstaat, indem Sie ein Backend verwenden, das Verschlüsselung unterstützt. Auch für die Speicherung sensibler Daten empfiehlt sich der Vault-Anbieter hasicorp.
Sie können auch Umgebungsvariablen verwenden, wie in den Kommentaren oben angegeben.
Die folgenden Argumente werden unterstützt.
username
– Dies ist der Benutzername für den Zugriff auf Citrix ADC. Der Standardwert ist nsroot
, es sei denn, die Umgebungsvariable NS_LOGIN
wurde festgelegtpassword
– Dies ist das Passwort für den Zugriff auf Citrix ADC. Standardmäßig ist nsroot
, es sei denn, die Umgebungsvariable NS_PASSWORD
wurde festgelegtendpoint
– (Erforderlich) Nitro API-Endpunkt in der Form http://<NS_IP>/
oder http://<NS_IP>:<PORT>/
. Kann in der Umgebungsvariablen NS_URL
angegeben werdeninsecure_skip_verify
– (Optional, true/false) Ob das nicht vertrauenswürdige Zertifikat auf dem Citrix ADC akzeptiert werden soll, wenn der Citrix ADC-Endpunkt https
istproxied_ns
– (Optional, NSIP) Die Ziel-Citrix ADC NSIP für MAS-Proxy-Aufrufe. Wenn diese Option definiert ist, müssen sich username
, password
und endpoint
auf den MAS-Proxy beziehen. Der Benutzername, das Passwort und der Endpunkt können in den Umgebungsvariablen NS_LOGIN
, NS_PASSWORD
und NS_URL
angegeben werden.
Resources.tf enthält den gewünschten Status der Ressourcen, die Sie auf dem Ziel-ADC haben möchten. Zum Beispiel zum Erstellen eines Lastausgleichs-Vservers in ADC enthält die folgende Datei „resource.tf“ die gewünschten Konfigurationen des lbvservers
citrixadc_lbvserver
resource "citrixadc_lbvserver" "foo" {
name = " sample_lb "
ipv46 = " 10.71.136.150 "
port = 443
servicetype = " SSL "
lbmethod = " ROUNDROBIN "
persistencetype = " COOKIEINSERT "
sslcertkey = " ${ citrixadc_sslcertkey . foo . certkey } "
sslprofile = " ns_default_ssl_profile_secure_frontend "
}
Informationen zu den Argumenten, möglichen Werten und anderen für eine bestimmte Ressource verfügbaren Argumenten finden Sie in der NITRO-API-Dokumentation https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ Load-balancing/lbvserver/lbvserver/ und die Terraform-Dokumentation wie z https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md .
Der
state
ist nicht mit dem Remote-Objekt synchronisiert. Wenn der Status des LB-Vservers nicht mit der Terraform-Konfiguration übereinstimmt, müssen Sie die Ressource manuell tainten und die Konfiguration erneut anwenden.
Die Unterordner im Beispielordner enthalten Beispiele für verschiedene ADC-Konfigurationen über Terraform. Sehen Sie sich das Beispiel „simple_lb“ an, um die Struktur und Verwendung unten zu verstehen.
resources.tf
beschreibt die tatsächlich zu erstellenden NetScaler-Konfigurationsobjekte. Die Attribute dieser Ressourcen sind entweder fest codiert oder werden anhand von Eingabevariablen in terraform.tfvars
nachgeschlagenvariables.tf
beschreibt die Eingabevariablen für die Terraform-Konfiguration. Diese können Voreinstellungen habenprovider.tf
werden der Benutzername, das Passwort und der Endpunkt des NetScaler angegeben. Alternativ können Sie die Umgebungsvariablen NS_URL, NS_LOGIN und NS_PASSWORD festlegen.terraform.tfvars
verfügt über die in variables.tf
angegebenen Variableneingänge terraform.tfvars
und provider.tf
entsprechend Ihrer eigenen NetScaler-Bereitstellung.terraform plan
und terraform apply
um den NetScaler zu konfigurieren. Ändern Sie die Back-End-Dienste und verwenden Sie terraform plan
und terraform apply
um die Änderungen zu überprüfen
Der Anbieter übernimmt die Konfigurationsänderungen nicht in den persistenten Speicher von Citrix ADC. Führen Sie dazu das Shell-Skript ns_commit.sh
aus:
export NS_URL=http:// < host > : < port > /
export NS_LOGIN=nsroot
export NS_PASSWORD=nsroot
./ns_commit.sh
Um sicherzustellen, dass die Konfiguration bei jedem Lauf gespeichert wird, können wir so etwas wie terraform apply && ns_commit.sh
verwenden
Eine Liste der in ADC unterstützten Anwendungsfälle finden Sie hier: https://registry.terraform.io/providers/citrix/citrixadc/latest/docs.
remote-exec
für einmalige Aufgaben Terraform ist nützlich, um den gewünschten Zustand für eine Reihe von Ressourcen aufrechtzuerhalten. Es ist weniger nützlich für Aufgaben wie die Netzwerkkonfiguration, die sich nicht ändern. Die Netzwerkkonfiguration ähnelt der Verwendung eines Provisioners in Terraform. Das Verzeichnis examples/remote-exec
zeigt Beispiele dafür, wie Terraform ssh verwenden kann, um diese einmaligen Aufgaben zu erledigen.
Probieren Sie unser Hands-on-Lab aus, um zu erfahren, wie es ist, Terraform für ADC zu verwenden.
Der erste Schritt zur Verwendung von Terraform für ADC ist die Installation der Terraform CLI. Informationen zur Installation von Terraform CLI für Ihre eigene Umgebung finden Sie in der Hashicorp-Dokumentation.
Weitere Informationen finden Sie im Abschnitt „Navigieren in unserem Repository“.
Folgen Sie dem Artikel „Erste Schritte mit Terraform auf NetScaler“, um Ihre erste Konfiguration zu erhalten
Informationen zum Schreiben der Terraform-Ressourcen für Citrix ADC finden Sie unter den folgenden Links zur NITRO-API-Dokumentation oder zur Terraform-Registrierungsdokumentation.
Hier ist die Terraform-Vorlage, der Sie folgen, um SSL-Offloading zu konfigurieren.
Weitere Informationen finden Sie im Abschnitt „Änderungen festschreiben“.
Sie möchten den aktuellen Status von ADC-Entitäten in Terraform sehen
Wenn Sie die ADC-Konfiguration mit den Konfigurationen überschreiben möchten, die Sie in der Terraform-Ressourcendatei haben, dann
Aktualisieren Sie Ihre Terraform-Statusdatei, um den aktuellen/wahren Status von ADC widerzuspiegeln
Erfahren Sie hier, wie Sie vorhandene NetScaler-Konfigurationen in Terraform-Ressourcen importieren
Weitere Informationen finden Sie in unseren Terraform-Cloud-Skripten für AWS und im Demovideo
Noch offen
Unsere Consul-Terraform-Sync-Integration ermöglicht Benutzern das automatische Erstellen, Aktualisieren und Löschen von Servicegruppen in Citrix ADC, die mit dem Consul Terraform Sync-Framework synchronisiert werden.
Integrieren Sie ADC und konfigurieren Sie es, um die Blue-Green-Bereitstellung mit Terraform zu erleichtern. Sehen Sie sich die Lösung an