Citrix ADC
Citrix a développé un fournisseur Terraform personnalisé pour automatiser les déploiements et les configurations Citrix ADC. À l'aide de Terraform, vous pouvez personnaliser vos ADC pour différents cas d'utilisation tels que l'équilibrage de charge, SSL, la commutation de contenu, GSLB, WAF, etc.
En savoir plus sur l’automatisation Citrix ADC ici
?Pour déployer Citrix ADC dans le cloud public - AWS et Azure, consultez les scripts cloud dans le dépôt github terraform-cloud-scripts.
✉️ Pour tout problème immédiat ou aide, contactez-nous à [email protected] !
remote-exec
pour des tâches ponctuelles Terraform est une infrastructure open source en tant qu'outil logiciel de code qui fournit un flux de travail CLI cohérent pour gérer des centaines de services cloud. Terraform codifie les API cloud dans des fichiers de configuration déclaratifs. Terraform peut être utilisé pour déployer et configurer ADC. La configuration de Citrix ADC via Terraform offre de nombreux avantages.
citrixadc
- Contient toutes les bibliothèques de ressources ADC que nous prenons en charge via Terraform. Ces bibliothèques de ressources appelleront en interne NITRO APIS pour configurer l'ADC cible.examples
- Contient les exemples permettant aux utilisateurs d'utiliser diverses ressources ADC, par exemple, le dossier simple_lb contient le fichier resources.tf qui illustre comment la ressource citrixadc_lbvserver peut être utilisée pour créer un vserver d'équilibrage de charge sur l'ADC cible. De même, différents dossiers contiennent des exemples de définition de différentes ressources. Les utilisateurs doivent examiner ces exemples et définir les configurations ADC souhaitées.docs
- https://github.com/citrix/terraform-provider-citrixadc/tree/master/docs/resources - contient la documentation de toutes les configurations de ressources prises en charge via Terraform. Référez-vous à ceci pour comprendre les différents arguments et valeurs pris par une ressource particulière. provider.tf
contient les informations sur l’ADC cible auquel vous souhaitez appliquer la configuration.
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.
}
Nous pouvons utiliser une URL https
et accepter le certificat d’autorité non fiable sur Citrix ADC en spécifiant insecure_skip_verify = true
Pour utiliser https
sans avoir besoin de définir insecure_skip_verify = true
suivez ce guide pour savoir comment remplacer le certificat TLS par défaut par celui d'une autorité de certification de confiance.
L'utilisation de https
est préférable. L'utilisation de http
entraînera la transmission de toutes les variables de configuration du fournisseur ainsi que des variables de ressources en texte clair. Toute personne observant le flux de données HTTP pourra analyser les valeurs sensibles telles que le mot de passe du fournisseur.
Évitez de stocker les informations d'identification du fournisseur dans l'état local en utilisant un backend prenant en charge le chiffrement. Le fournisseur de coffre-fort hasicorp est également recommandé pour stocker des données sensibles.
Vous pouvez également utiliser des variables d'environnement comme indiqué dans les commentaires ci-dessus.
Les arguments suivants sont pris en charge.
username
– Il s’agit du nom d’utilisateur pour accéder à Citrix ADC. La valeur par défaut est nsroot
sauf si la variable d'environnement NS_LOGIN
a été définiepassword
– Il s’agit du mot de passe pour accéder à Citrix ADC. La valeur par défaut est nsroot
sauf si la variable d'environnement NS_PASSWORD
a été définieendpoint
- (Obligatoire) Point de terminaison de l'API Nitro sous la forme http://<NS_IP>/
ou http://<NS_IP>:<PORT>/
. Peut être spécifié dans la variable d'environnement NS_URL
insecure_skip_verify
- (Facultatif, vrai/faux) S'il faut accepter le certificat non approuvé sur Citrix ADC lorsque le point de terminaison Citrix ADC est https
proxied_ns
- (Facultatif, NSIP) Le NSIP Citrix ADC cible pour les appels proxy MAS. Lorsque cette option est définie, username
, password
et endpoint
doivent faire référence au proxy MAS. Le nom d'utilisateur, le mot de passe et le point de terminaison peuvent être fournis dans les variables d'environnement NS_LOGIN
, NS_PASSWORD
et NS_URL
.
Resources.tf contient l’état souhaité des ressources que vous souhaitez sur l’ADC cible. Par exemple, pour créer un vserver d'équilibrage de charge dans ADC, le fichier Resource.tf suivant contient les configurations souhaitées de lbvserver.
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 "
}
Afin de comprendre les arguments, les valeurs possibles et les autres arguments disponibles pour une ressource donnée, reportez-vous à la documentation de l'API NITRO https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ load-balancing/lbvserver/lbvserver/ et la documentation Terraform telle que https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md .
l'
state
de l'attribut n'est pas synchronisé avec l'objet distant. Si l'état du lb vserver n'est pas synchronisé avec la configuration de Terraform, vous devrez modifier manuellement la ressource et appliquer à nouveau la configuration.
Les sous-dossiers du dossier d'exemple contiennent des exemples de différentes configurations ADC via Terraform. Reportez-vous à l'exemple simple_lb pour comprendre la structure et l'utilisation ci-dessous.
resources.tf
décrit les objets de configuration NetScaler réels à créer. Les attributs de ces ressources sont soit codés en dur, soit recherchés à partir des variables d'entrée dans terraform.tfvars
variables.tf
décrit les variables d'entrée de la configuration Terraform. Ceux-ci peuvent avoir des valeurs par défautprovider.tf
est utilisé pour spécifier le nom d'utilisateur, le mot de passe et le point de terminaison de NetScaler. Vous pouvez également définir les variables d'environnement NS_URL, NS_LOGIN et NS_PASSWORD.terraform.tfvars
a les entrées variables spécifiées dans variables.tf
terraform.tfvars
et provider.tf
en fonction de votre propre déploiement NetScaler.terraform plan
et terraform apply
pour configurer NetScaler. Modifiez l'ensemble des services backend et utilisez terraform plan
et terraform apply
pour vérifier les modifications.
Le fournisseur ne validera pas les modifications de configuration dans le magasin persistant de Citrix ADC. Pour ce faire, exécutez le script shell ns_commit.sh
:
export NS_URL=http:// < host > : < port > /
export NS_LOGIN=nsroot
export NS_PASSWORD=nsroot
./ns_commit.sh
Pour garantir que la configuration est enregistrée à chaque exécution, nous pouvons utiliser quelque chose comme terraform apply && ns_commit.sh
La liste des cas d'utilisation pris en charge dans ADC peut être trouvée ici https://registry.terraform.io/providers/citrix/citrixadc/latest/docs .
remote-exec
pour des tâches ponctuelles Terraform est utile pour maintenir l'état souhaité pour un ensemble de ressources. C'est moins utile pour les tâches telles que la configuration du réseau qui ne changent pas. La configuration du réseau revient à utiliser un fournisseur dans Terraform. Le répertoire examples/remote-exec
montre des exemples de la façon dont Terraform peut utiliser ssh pour accomplir ces tâches ponctuelles.
Essayez notre laboratoire pratique pour découvrir à quoi ressemble l'utilisation de Terraform pour ADC.
La première étape pour utiliser Terraform pour ADC consiste à installer Terraform CLI. Reportez-vous à la documentation Hashicorp pour installer Terraform CLI pour votre propre environnement.
Reportez-vous à la section Naviguer dans notre référentiel
Suivez l'article sur Démarrer avec Terraform sur NetScaler pour obtenir votre première configuration
Pour écrire les ressources Terraform pour Citrix ADC, consultez les liens suivants vers la documentation de l’API NITRO ou la documentation du registre Terraform.
Voici le modèle Terraform que vous suivez pour configurer le déchargement SSL.
Reportez-vous à la section validation des modifications
Vous souhaitez voir l'état actuel des entités ADC dans Terraform
Si vous souhaitez remplacer la configuration ADC par les configurations que vous avez dans le fichier de ressources Terraform, alors
Mettez à jour votre fichier d'état Terraform pour refléter l'état actuel/véritable de l'ADC.
Découvrez comment importer des configurations NetScaler existantes dans les ressources Terraform ici
Reportez-vous à nos scripts cloud Terraform pour AWS et à notre vidéo de démonstration
À déterminer
Notre intégration Consul-Terraform-Sync permet aux utilisateurs de créer, mettre à jour et supprimer automatiquement des groupes de services dans Citrix ADC qui sont synchronisés avec le framework Consul Terraform Sync.
Intégrez ADC et configurez-le pour faciliter le déploiement Blue-Green à l'aide de Terraform. Découvrez la solution