Citrix ADC
제공자Citrix는 Citrix ADC 배포 및 구성을 자동화하기 위한 맞춤형 Terraform 공급자를 개발했습니다. Terraform을 사용하면 로드 밸런싱, SSL, 콘텐츠 전환, GSLB, WAF 등과 같은 다양한 사용 사례에 맞게 ADC를 맞춤 구성할 수 있습니다.
여기에서 Citrix ADC 자동화에 대해 자세히 알아보세요.
?퍼블릭 클라우드(AWS 및 Azure)에 Citrix ADC를 배포하려면 github repo terraform-cloud-scripts에서 클라우드 스크립트를 확인하세요.
✉️ 즉각적인 문제나 도움이 필요한 경우 [email protected]으로 문의하세요!
remote-exec
사용 Terraform은 수백 개의 클라우드 서비스를 관리하기 위한 일관된 CLI 워크플로를 제공하는 코드형 오픈 소스 인프라 소프트웨어 도구입니다. Terraform은 클라우드 API를 선언적 구성 파일로 코드화합니다. Terraform을 사용하여 ADC를 배포 하고 구성할 수 있습니다. Terraform을 통해 Citrix ADC를 구성하면 여러 가지 이점이 있습니다.
citrixadc
폴더 - Terraform을 통해 지원하는 모든 ADC 리소스 라이브러리가 포함되어 있습니다. 이러한 리소스 라이브러리는 내부적으로 NITRO APIS를 호출하여 대상 ADC를 구성합니다.examples
폴더 - 사용자가 다양한 ADC 리소스를 사용할 수 있는 예제가 포함되어 있습니다. 예를 들어 simple_lb 폴더에는 citrixadc_lbvserver 리소스를 사용하여 대상 ADC에서 로드 밸런싱 가상 서버를 생성하는 방법을 보여주는 resources.tf가 포함되어 있습니다. 마찬가지로, 다양한 폴더에는 다양한 리소스를 정의하는 예제가 포함되어 있습니다. 사용자는 이러한 예를 검토하고 원하는 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.
}
https
URL을 사용하고 insecure_skip_verify = true
지정하여 Citrix ADC에서 신뢰할 수 없는 기관 인증서를 수락할 수 있습니다.
insecure_skip_verify = true
를 설정할 필요 없이 https
사용하려면 기본 TLS 인증서를 신뢰할 수 있는 인증 기관의 인증서로 교체하는 방법에 대한 이 가이드를 따르세요.
https
를 사용하는 것이 좋습니다. http
사용하면 모든 공급자 구성 변수와 리소스 변수가 일반 텍스트로 전송됩니다. HTTP 데이터 스트림을 관찰하는 사람은 누구나 공급자 비밀번호와 같은 민감한 값을 구문 분석할 수 있습니다.
암호화를 지원하는 백엔드를 사용하여 공급자 자격 증명을 로컬 상태에 저장하지 마세요. 민감한 데이터를 저장하려면 hasicorp 저장소 공급자도 권장됩니다.
위의 설명에 명시된 대로 환경 변수를 사용할 수도 있습니다.
다음 인수가 지원됩니다.
username
- Citrix ADC에 액세스하기 위한 사용자 이름입니다. 환경 변수 NS_LOGIN
설정되지 않은 경우 기본값은 nsroot
입니다.password
- Citrix ADC에 접속하기 위한 비밀번호입니다. 환경 변수 NS_PASSWORD
설정되지 않은 경우 기본값은 nsroot
입니다.endpoint
- (필수) http://<NS_IP>/
또는 http://<NS_IP>:<PORT>/
형식의 Nitro API 엔드포인트입니다. 환경 변수 NS_URL
에 지정할 수 있습니다.insecure_skip_verify
- (선택 사항, true/false) Citrix ADC 끝점이 https
인 경우 Citrix ADC에서 신뢰할 수 없는 인증서를 수락할지 여부proxied_ns
- (선택 사항, NSIP) MAS 프록시 호출을 위한 대상 Citrix ADC NSIP입니다. 이 옵션이 정의되면 username
, password
및 endpoint
MAS 프록시를 참조해야 합니다. 사용자 이름, 비밀번호 및 엔드포인트는 환경 변수 NS_LOGIN
, NS_PASSWORD
및 NS_URL
에서 제공될 수 있습니다.
Resources.tf에는 대상 ADC에서 원하는 리소스의 원하는 상태가 포함되어 있습니다. 예를 들어 ADC에서 로드 밸런싱 가상 서버를 생성하려면 다음 리소스에 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 가상 서버의 상태가 Terraform 구성과 동기화되지 않은 경우 리소스를 수동으로 오염시키고 구성을 다시 적용해야 합니다.
예제 폴더의 하위 폴더에는 Terraform을 통한 다양한 ADC 구성의 예가 포함되어 있습니다. 아래 구조와 사용법을 이해하려면 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
수정합니다.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를 사용하여 이러한 일회성 작업을 수행하는 방법의 예를 보여줍니다.
Hands on Lab을 통해 ADC용 Terraform을 사용하는 방법을 경험해 보세요.
ADC용 Terraform을 사용하는 첫 번째 단계는 Terraform CLI를 설치하는 것입니다. 자신의 환경에 맞게 Terraform CLI를 설치하려면 Hashicorp 설명서를 참조하세요.
저장소 탐색 섹션을 참조하세요.
첫 번째 구성을 얻으려면 NetScaler에서 Terraform 시작하기 문서를 따르세요.
Citrix ADC용 Terraform 리소스를 작성하려면 NITRO API 문서 또는 Terraform 레지스트리 문서 링크를 참조하세요.
다음은 SSL 오프로딩을 구성하기 위해 따라야 하는 Terraform 템플릿입니다.
변경사항 커밋 섹션을 참조하세요.
Terraform에서 ADC 엔터티의 현재 상태를 보고 싶습니다.
Terraform 리소스 파일에 있는 구성으로 ADC 구성을 재정의하려면 다음을 수행하세요.
ADC의 현재/실제 상태를 반영하도록 Terraform 상태 파일을 업데이트하세요.
여기에서 기존 NetScaler 구성을 Terraform 리소스로 가져오는 방법을 알아보세요.
AWS용 Terraform 클라우드 스크립트 및 데모 비디오를 참조하세요.
미정
Consul-Terraform-Sync 통합을 통해 사용자는 Consul Terraform Sync 프레임워크와 동기화되는 Citrix ADC의 서비스 그룹을 자동으로 생성, 업데이트 및 삭제할 수 있습니다.
ADC를 통합하고 Terraform을 사용하여 블루-그린 배포를 촉진하도록 구성합니다. 솔루션을 확인하세요.