Citrix ADC
Citrix ha desarrollado un proveedor Terraform personalizado para automatizar implementaciones y configuraciones de Citrix ADC. Con Terraform, puede configurar de forma personalizada sus ADC para diferentes casos de uso, como equilibrio de carga, SSL, cambio de contenido, GSLB, WAF, etc.
Obtenga más información sobre la automatización Citrix ADC aquí
Para implementar Citrix ADC en la nube pública: AWS y Azure, consulte los scripts de la nube en el repositorio de github terraform-cloud-scripts.
✉️ Para cualquier problema inmediato o ayuda, comuníquese con nosotros en [email protected].
remote-exec
para tareas únicas Terraform es una infraestructura de código abierto como herramienta de software de código que proporciona un flujo de trabajo CLI consistente para administrar cientos de servicios en la nube. Terraform codifica las API de la nube en archivos de configuración declarativos. Terraform se puede utilizar para implementar y configurar ADC. Configurar Citrix ADC a través de Terraform proporciona múltiples beneficios.
citrixadc
: contiene toda la biblioteca de recursos de ADC que admitimos a través de Terraform. Estas bibliotecas de recursos llamarán internamente a NITRO APIS para configurar el ADC de destino.examples
: contiene ejemplos para que los usuarios utilicen varios recursos de ADC, por ejemplo, la carpeta simple_lb contiene el archivo resources.tf que ilustra cómo se puede utilizar el recurso citrixadc_lbvserver para crear un servidor virtual de equilibrio de carga en el ADC de destino. De manera similar, diferentes carpetas contienen ejemplos sobre cómo definir diferentes recursos. Se espera que los usuarios revisen estos ejemplos y definan las configuraciones de ADC que deseen.docs
: https://github.com/citrix/terraform-provider-citrixadc/tree/master/docs/resources: contiene la documentación de todas las configuraciones de recursos admitidas a través de Terraform. Consulte esto para comprender los diferentes argumentos y valores que toma un recurso en particular. provider.tf
contiene la información sobre el ADC de destino donde desea aplicar la configuración.
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.
}
Podemos usar una URL https
y aceptar el certificado de autoridad que no es de confianza en Citrix ADC especificando insecure_skip_verify = true
Para usar https
sin la necesidad de configurar insecure_skip_verify = true
siga esta guía sobre cómo reemplazar el certificado TLS predeterminado por uno de una autoridad certificadora confiable.
Se prefiere el uso de https
. El uso de http
dará como resultado que todas las variables de configuración del proveedor, así como las variables de recursos, se transmitan en texto sin cifrar. Cualquiera que observe el flujo de datos HTTP podrá analizar valores confidenciales, como la contraseña del proveedor.
Evite almacenar las credenciales del proveedor en el estado local mediante el uso de un backend que admita el cifrado. También se recomienda el proveedor de bóveda hasicorp para almacenar datos confidenciales.
También puede utilizar variables de entorno como se indica en los comentarios anteriores.
Se apoyan los siguientes argumentos.
username
: este es el nombre de usuario para acceder a Citrix ADC. El valor predeterminado es nsroot
a menos que se haya configurado la variable de entorno NS_LOGIN
password
: esta es la contraseña para acceder a Citrix ADC. El valor predeterminado es nsroot
a menos que se haya configurado la variable de entorno NS_PASSWORD
endpoint
: (obligatorio) punto final de la API de Nitro con el formato http://<NS_IP>/
o http://<NS_IP>:<PORT>/
. Se puede especificar en la variable de entorno NS_URL
insecure_skip_verify
: (opcional, verdadero/falso) si se acepta el certificado que no es de confianza en Citrix ADC cuando el punto final de Citrix ADC es https
proxied_ns
: (opcional, NSIP) El Citrix ADC NSIP de destino para llamadas proxy MAS. Cuando se define esta opción, username
, password
y endpoint
deben hacer referencia al proxy MAS. El nombre de usuario, la contraseña y el punto final se pueden proporcionar en las variables de entorno NS_LOGIN
, NS_PASSWORD
y NS_URL
.
Resources.tf contiene el estado deseado de los recursos que desea en el ADC de destino. Por ejemplo, para crear un servidor virtual de equilibrio de carga en ADC, el siguiente recurso.tf contiene las configuraciones deseadas 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 "
}
Para comprender los argumentos, los valores posibles y otros argumentos disponibles para un recurso determinado, consulte la documentación de la API de NITRO https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ load-balancing/lbvserver/lbvserver/ y la documentación de Terraform como https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md.
el
state
del atributo no está sincronizado con el objeto remoto. Si el estado del lb vserver no está sincronizado con la configuración de terraform, deberá corromper manualmente el recurso y aplicar la configuración nuevamente.
Las subcarpetas de la carpeta de ejemplo contienen ejemplos de diferentes configuraciones de ADC a través de terraform. Consulte el ejemplo de simple_lb para comprender la estructura y el uso a continuación.
resources.tf
describe los objetos de configuración reales de NetScaler que se crearán. Los atributos de estos recursos están codificados o se buscan a partir de variables de entrada en terraform.tfvars
variables.tf
describe las variables de entrada a la configuración de terraform. Estos pueden tener valores predeterminadosprovider.tf
se utiliza para especificar el nombre de usuario, la contraseña y el punto final de NetScaler. Alternativamente, puede configurar las variables de entorno NS_URL, NS_LOGIN y NS_PASSWORD.terraform.tfvars
tiene las entradas variables especificadas en variables.tf
terraform.tfvars
y provider.tf
para adaptarlos a su propia implementación de NetScaler.terraform plan
y terraform apply
para configurar NetScaler. Modifique el conjunto de servicios backend y utilice terraform plan
y terraform apply
para verificar los cambios.
El proveedor no enviará los cambios de configuración al almacén persistente de Citrix ADC. Para hacer esto, ejecute el script de shell ns_commit.sh
:
export NS_URL=http:// < host > : < port > /
export NS_LOGIN=nsroot
export NS_PASSWORD=nsroot
./ns_commit.sh
Para asegurarnos de que la configuración se guarde en cada ejecución, podemos usar algo como terraform apply && ns_commit.sh
La lista de casos de uso admitidos en ADC se puede encontrar aquí https://registry.terraform.io/providers/citrix/citrixadc/latest/docs.
remote-exec
para tareas únicas Terraform es útil para mantener el estado deseado de un conjunto de recursos. Es menos útil para tareas como la configuración de red que no cambian. La configuración de la red es como usar un aprovisionador dentro de Terraform. El directorio de examples/remote-exec
muestra ejemplos de cómo Terraform puede usar ssh para realizar estas tareas únicas.
Pruebe nuestro laboratorio práctico para experimentar cómo es usar Terraform para ADC.
El primer paso para usar Terraform para ADC es instalar Terraform CLI. Consulte la documentación de Hashicorp para instalar Terraform CLI en su propio entorno.
Consulte la sección Navegando por nuestro repositorio.
Siga el artículo sobre Introducción a Terraform en NetScaler para obtener su primera configuración.
Para escribir los recursos de Terraform para Citrix ADC, consulte los siguientes enlaces: documentación de NITRO API o documentación de registro de terraform.
Aquí está la plantilla de Terraform que debe seguir para configurar la descarga de SSL.
Consulte la sección de confirmación de cambios.
Quieres ver el estado actual de las entidades ADC en Terraform
Si desea anular la configuración de ADC con las configuraciones que tiene en el archivo de recursos de Terraform, entonces
Actualice su archivo de estado de Terraform para reflejar el estado actual/verdadero de ADC
Aprenda cómo importar configuraciones de NetScaler existentes a recursos de Terraform aquí
Consulte nuestros scripts de nube de Terraform para AWS y el vídeo de demostración
Por determinar
Nuestra integración Consul-Terraform-Sync permite a los usuarios crear, actualizar y eliminar automáticamente grupos de servicios en Citrix ADC que están sincronizados con el marco Consul Terraform Sync.
Integre ADC y configúrelo para facilitar la implementación Blue-Green usando Terraform. Consulte la solución