Citrix ADC
A Citrix desenvolveu um provedor Terraform personalizado para automatizar implantações e configurações do Citrix ADC. Usando o Terraform, você pode configurar seus ADCs de forma personalizada para diferentes casos de uso, como balanceamento de carga, SSL, troca de conteúdo, GSLB, WAF etc.
Saiba mais sobre Citrix ADC Automation aqui
?Para implantar o Citrix ADC em nuvem pública - AWS e Azure, verifique os scripts de nuvem no repositório github terraform-cloud-scripts.
✉️ Para qualquer problema ou ajuda imediata, entre em contato conosco pelo e-mail [email protected]!
remote-exec
para tarefas únicas Terraform é uma infraestrutura de código aberto como ferramenta de software de código que fornece um fluxo de trabalho CLI consistente para gerenciar centenas de serviços em nuvem. O Terraform codifica APIs de nuvem em arquivos de configuração declarativos. O Terraform pode ser usado para implantar e configurar o ADC. Configurar o Citrix ADC por meio do Terraform oferece vários benefícios.
citrixadc
- Contém toda a biblioteca de recursos ADC que oferecemos suporte por meio do Terraform. Essas bibliotecas de recursos chamarão internamente o NITRO APIS para configurar o ADC de destino.examples
- Contém os exemplos para os usuários usarem vários recursos ADC, por exemplo, a pasta simple_lb contém o resources.tf que ilustra como o recurso citrixadc_lbvserver pode ser usado para criar um vserver de balanceamento de carga no ADC de destino. Da mesma forma, pastas diferentes contêm exemplos de definição de recursos diferentes. Espera-se que os usuários revisem esses exemplos e definam as configurações ADC desejadas.docs
- https://github.com/citrix/terraform-provider-citrixadc/tree/master/docs/resources - contém a documentação de todas as configurações de recursos suportadas pelo Terraform. Consulte isto para entender os diferentes argumentos e valores que um determinado recurso assume. provider.tf
contém as informações sobre o ADC de destino onde você deseja aplicar a configuração.
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 um URL https
e aceitar o certificado de autoridade não confiável no Citrix ADC especificando insecure_skip_verify = true
Para usar https
sem a necessidade de definir insecure_skip_verify = true
siga este guia sobre como substituir o certificado TLS padrão por um de uma autoridade de certificação confiável.
O uso de https
é preferido. O uso de http
resultará na transmissão de todas as variáveis de configuração do provedor, bem como de recursos, em texto não criptografado. Qualquer pessoa que observe o fluxo de dados HTTP poderá analisar valores confidenciais, como a senha do provedor.
Evite armazenar credenciais de provedor no estado local usando um back-end que ofereça suporte à criptografia. O provedor de cofre hasicorp também é recomendado para armazenar dados confidenciais.
Você também pode usar variáveis de ambiente conforme indicado nos comentários acima.
Os seguintes argumentos são suportados.
username
- Este é o nome de usuário para acessar o Citrix ADC. O padrão é nsroot
a menos que a variável de ambiente NS_LOGIN
tenha sido definidapassword
- Esta é a senha para acessar o Citrix ADC. O padrão é nsroot
a menos que a variável de ambiente NS_PASSWORD
tenha sido definidaendpoint
- (obrigatório) endpoint da API Nitro no formato http://<NS_IP>/
ou http://<NS_IP>:<PORT>/
. Pode ser especificado na variável de ambiente NS_URL
insecure_skip_verify
- (opcional, verdadeiro/falso) Se deve aceitar o certificado não confiável no Citrix ADC quando o endpoint do Citrix ADC for https
proxied_ns
- (opcional, NSIP) O NSIP Citrix ADC de destino para chamadas com proxy MAS. Quando esta opção é definida, username
, password
e endpoint
devem se referir ao proxy MAS. O nome de usuário, senha e endpoint podem ser fornecidos nas variáveis de ambiente NS_LOGIN
, NS_PASSWORD
e NS_URL
.
Resources.tf contém o estado desejado dos recursos que você deseja no ADC de destino. Por exemplo, para criar um vserver de balanceamento de carga no ADC, o seguinte resource.tf contém as configurações desejadas 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 entender os argumentos, valores possíveis e outros argumentos disponíveis para um determinado recurso, consulte a documentação da API NITRO https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/ load-balancing/lbvserver/lbvserver/ e a documentação do Terraform, como https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md .
o
state
do atributo não está sincronizado com o objeto remoto. Se o estado do lb vserver estiver fora de sincronia com a configuração do terraform, você precisará contaminar manualmente o recurso e aplicar a configuração novamente.
As subpastas na pasta de exemplo contêm exemplos de diferentes configurações de ADC por meio do terraform. Consulte o exemplo simple_lb para entender a estrutura e o uso abaixo.
resources.tf
descreve os objetos de configuração reais do NetScaler a serem criados. Os atributos desses recursos são codificados ou pesquisados a partir de variáveis de entrada em terraform.tfvars
variables.tf
descreve as variáveis de entrada para a configuração do terraform. Eles podem ter padrõesprovider.tf
é usado para especificar o nome de usuário, senha e endpoint do NetScaler. Alternativamente, você pode definir as variáveis de ambiente NS_URL, NS_LOGIN e NS_PASSWORD.terraform.tfvars
tem as entradas variáveis especificadas em variables.tf
terraform.tfvars
e provider.tf
para se adequar à sua própria implantação do NetScaler.terraform plan
e terraform apply
para configurar o NetScaler. Modifique o conjunto de serviços de back-end e use terraform plan
e terraform apply
para verificar as alterações
O provedor não confirmará as alterações de configuração no armazenamento persistente do Citrix ADC. Para fazer isso, execute o script de shell ns_commit.sh
:
export NS_URL=http:// < host > : < port > /
export NS_LOGIN=nsroot
export NS_PASSWORD=nsroot
./ns_commit.sh
Para garantir que a configuração seja salva a cada execução, podemos usar algo como terraform apply && ns_commit.sh
A lista de casos de uso suportados no ADC pode ser encontrada aqui https://registry.terraform.io/providers/citrix/citrixadc/latest/docs .
remote-exec
para tarefas únicas O Terraform é útil para manter o estado desejado para um conjunto de recursos. É menos útil para tarefas como configuração de rede que não mudam. A configuração da rede é como usar um provisionador dentro do Terraform. O diretório examples/remote-exec
mostra exemplos de como o Terraform pode usar ssh para realizar essas tarefas únicas.
Experimente nosso laboratório prático para experimentar como é usar o Terraform para ADC.
A primeira etapa para usar o Terraform para ADC é instalar o Terraform CLI. Consulte a documentação da Hashicorp para instalar a CLI do Terraform em seu próprio ambiente.
Consulte a seção Navegando em nosso repositório
Siga o artigo sobre Introdução ao Terraform no NetScaler para obter sua primeira configuração
Para escrever os recursos do Terraform para Citrix ADC, consulte os seguintes links: documentação da API NITRO ou documentação do registro do terraform.
Aqui está o modelo Terraform que você segue para configurar o descarregamento de SSL.
Consulte a seção de alterações de commit
Você deseja ver o estado atual das entidades ADC no Terraform
Se você deseja substituir a configuração do ADC pelas configurações que você possui no arquivo de recursos do Terraform, então
Atualize seu arquivo de estado do terraform para refletir o estado atual/verdadeiro do ADC
Aprenda como importar configurações existentes do NetScaler para recursos do Terraform aqui
Consulte nossos scripts de nuvem terraform para AWS e vídeo de demonstração
A definir
Nossa integração Consul-Terraform-Sync permite que os usuários criem, atualizem e excluam automaticamente grupos de serviços no Citrix ADC que são sincronizados com a estrutura Consul Terraform Sync.
Integre o ADC e configure-o para facilitar a implantação do Blue-Green usando Terraform. Confira a solução