Citrix ADC
Компания Citrix разработала собственный поставщик Terraform для автоматизации развертываний и конфигураций Citrix ADC. Используя Terraform, вы можете настроить свои ADC для различных вариантов использования, таких как балансировка нагрузки, SSL, переключение контента, GSLB, WAF и т. д.
Узнайте больше об автоматизации Citrix ADC здесь.
«Для развертывания Citrix ADC в публичном облаке — AWS и Azure ознакомьтесь с облачными сценариями в репозитории github terraform-cloud-scripts.
✉️ По любым неотложным вопросам или помощи обращайтесь к нам по адресу [email protected]!
remote-exec
для одноразовых задач Terraform — это инфраструктура с открытым исходным кодом в виде программного инструмента для написания кода, который обеспечивает согласованный рабочий процесс CLI для управления сотнями облачных сервисов. Terraform кодифицирует облачные API в файлы декларативной конфигурации. Terraform можно использовать для развертывания и настройки ADC. Настройка Citrix ADC через Terraform дает множество преимуществ.
citrixadc
— содержит всю библиотеку ресурсов ADC, которую мы поддерживаем через Terraform. Эти библиотеки ресурсов будут внутренне вызывать NITRO APIS для настройки целевого АЦП.examples
— содержит примеры использования пользователями различных ресурсов ADC. Например, папка simple_lb содержит файл resources.tf, который иллюстрирует, как ресурс citrixadc_lbvserver можно использовать для создания виртуального сервера балансировки нагрузки на целевом ADC. Аналогично, в разных папках содержатся примеры определения разных ресурсов. Ожидается, что пользователи ознакомятся с этими примерами и определят желаемые конфигурации АЦП.docs
— https://github.com/citrix/terraform-provider-citrixadc/tree/master/docs/resources — содержит документацию по всем конфигурациям ресурсов, поддерживаемым через Terraform. Обратитесь к этому, чтобы понять различные аргументы и значения, которые принимает конкретный ресурс. provider.tf
содержит информацию о целевом ADC, к которому вы хотите применить конфигурацию.
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.
}
Мы можем использовать URL-адрес https
и принять сертификат недоверенного центра сертификации на Citrix ADC, указав insecure_skip_verify = true
Чтобы использовать https
без необходимости устанавливать insecure_skip_verify = true
следуйте этому руководству о том, как заменить сертификат TLS по умолчанию на сертификат от доверенного центра сертификации.
Использование https
является предпочтительным. Использование http
приведет к тому, что все переменные конфигурации поставщика, а также переменные ресурсов будут передаваться в виде открытого текста. Любой, кто наблюдает за потоком данных HTTP, сможет анализировать конфиденциальные значения, такие как пароль провайдера.
Избегайте хранения учетных данных поставщика в локальном состоянии, используя серверную часть, поддерживающую шифрование. Поставщик хранилища hasicorp также рекомендуется для хранения конфиденциальных данных.
Вы также можете использовать переменные среды, как указано в комментариях выше.
Поддерживаются следующие аргументы.
username
— это имя пользователя для доступа к Citrix ADC. По умолчанию используется nsroot
, если не установлена переменная среды NS_LOGIN
password
— это пароль для доступа к Citrix ADC. По умолчанию используется nsroot
, если не установлена переменная среды NS_PASSWORD
endpoint
— (обязательно) конечная точка Nitro API в формате http://<NS_IP>/
или http://<NS_IP>:<PORT>/
. Может быть указано в переменной среды NS_URL
insecure_skip_verify
— (необязательно, true/false) следует ли принимать недоверенный сертификат на Citrix ADC, если конечной точкой Citrix ADC является https
proxied_ns
— (Необязательно, NSIP) Целевой NSIP Citrix ADC для прокси-вызовов MAS. Если этот параметр определен, username
, password
и endpoint
должны относиться к прокси-серверу MAS. Имя пользователя, пароль и конечная точка могут быть указаны в переменных среды NS_LOGIN
, NS_PASSWORD
и NS_URL
.
Resources.tf содержит желаемое состояние ресурсов, которые вы хотите использовать на целевом ADC. Например, для создания vserver балансировки нагрузки в ADC следующий файл resources.tf содержит нужные конфигурации 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 "
}
Чтобы понять аргументы, возможные значения и другие аргументы, доступные для данного ресурса, обратитесь к документации NITRO API https://developer-docs.citrix.com/projects/netscaler-nitro-api/en/12.0/configuration/. load-balancing/lbvserver/lbvserver/ и документацию Terraform, такую как https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbvserver.md.
state
атрибута не синхронизировано с удаленным объектом. Если состояние lb vserver не синхронизировано с конфигурацией terraform, вам придется вручную испортить ресурс и снова применить конфигурацию.
Подпапки в папке примеров содержат примеры различных конфигураций ADC через terraform. Обратитесь к примеру simple_lb, чтобы понять структуру и использование ниже.
resources.tf
описывает фактические объекты конфигурации NetScaler, которые необходимо создать. Атрибуты этих ресурсов либо жестко запрограммированы, либо просматриваются из входных переменных в terraform.tfvars
variables.tf
описывает входные переменные в конфигурации terraform. Они могут иметь значения по умолчаниюprovider.tf
используется для указания имени пользователя, пароля и конечной точки NetScaler. Альтернативно вы можете установить переменные среды NS_URL, NS_LOGIN и NS_PASSWORD.terraform.tfvars
имеет входные переменные, указанные в variables.tf
terraform.tfvars
provider.tf
в соответствии с вашим собственным развертыванием NetScaler.terraform plan
и terraform apply
для настройки NetScaler. Измените набор серверных служб и используйте terraform plan
и terraform apply
для проверки изменений.
Поставщик не будет фиксировать изменения конфигурации в постоянном хранилище Citrix ADC. Для этого запустите скрипт ns_commit.sh
:
export NS_URL=http:// < host > : < port > /
export NS_LOGIN=nsroot
export NS_PASSWORD=nsroot
./ns_commit.sh
Чтобы гарантировать сохранение конфигурации при каждом запуске, мы можем использовать что-то вроде terraform apply && ns_commit.sh
Список вариантов использования, поддерживаемых в ADC, можно найти здесь https://registry.terraform.io/providers/citrix/citrixadc/latest/docs.
remote-exec
для одноразовых задач Terraform полезен для поддержания желаемого состояния набора ресурсов. Это менее полезно для таких задач, как конфигурация сети, которые не меняются. Конфигурация сети аналогична использованию поставщика внутри Terraform. В каталоге examples/remote-exec
показаны примеры того, как Terraform может использовать ssh для выполнения этих одноразовых задач.
Попробуйте наше практическое занятие и узнайте, каково это — использовать Terraform для ADC.
Первым шагом к использованию Terraform for ADC является установка Terraform CLI. Обратитесь к документации Hashicorp для установки Terraform CLI в вашей среде.
См. раздел «Навигация по нашему репозиторию».
Следуйте статье «Начало работы с Terraform на NetScaler», чтобы получить первую конфигурацию.
Чтобы написать ресурсы Terraform для Citrix ADC, обратитесь к следующим ссылкам: документация по API NITRO или документация по реестру terraform.
Вот шаблон Terraform, которому вы следуете для настройки разгрузки SSL.
См. раздел о фиксации изменений.
Вы хотите увидеть текущее состояние объектов ADC в Terraform.
Если вы хотите переопределить конфигурацию ADC с помощью конфигураций, которые есть в файле ресурсов Terraform, тогда
Обновите файл состояния terraform, чтобы отразить текущее/истинное состояние ADC.
Узнайте, как импортировать существующие конфигурации NetScaler в ресурсы Terraform здесь.
Ознакомьтесь с нашими облачными скриптами terraform для AWS и демонстрационным видео.
подлежит уточнению
Наша интеграция Consul-Terraform-Sync позволяет пользователям автоматически создавать, обновлять и удалять сервисные группы в Citrix ADC, которые синхронизируются с платформой Consul Terraform Sync.
Интегрируйте ADC и настройте его, чтобы облегчить развертывание Blue-Green с помощью Terraform. Ознакомьтесь с решением.