Citrix ADC
供應商Citrix 開發了一個自訂 Terraform 提供程序,用於自動化 Citrix ADC 部署和配置。使用 Terraform,您可以針對不同的用例自訂配置 ADC,例如負載平衡、SSL、內容交換、GSLB、WAF 等。
在此處了解有關 Citrix ADC 自動化的更多信息
若要在公有雲 - AWS 和 Azure 中部署 Citrix ADC,請查看 github 儲存庫 terraform-cloud-scripts 中的雲端腳本。
✉️ 對於任何緊急問題或協助,請透過 [email protected] 與我們聯絡!
remote-exec
執行一次性任務Terraform 是一種開源基礎架構即程式碼軟體工具,可提供一致的 CLI 工作流程來管理數百個雲端服務。 Terraform 可用於部署和配置ADC。透過 Terraform 配置 Citrix ADC 可帶來多種好處。
citrixadc
資料夾 - 包含我們透過 Terraform 支援的所有 ADC 資源庫。這些資源庫將在內部呼叫NITRO APIS來配置目標ADC。examples
資料夾 - 包含使用者使用各種 ADC 資源的範例,例如 simple_lb 資料夾包含 resources.tf,說明如何使用 citrixadc_lbvserver 資源在目標 ADC 上建立負載平衡虛擬伺服器。同樣,不同的資料夾包含定義不同資源的範例。使用者應查看這些範例並定義他們所需的 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 上不受信任的頒發機構憑證
若要使用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 端點為https
時是否接受 Citrix ADC 上的不信任憑證proxied_ns
-(可選,NSIP)MAS 代理呼叫的目標 Citrix ADC NSIP。定義此選項時, username
、 password
和endpoint
必須引用 MAS 代理程式。使用者名稱、密碼和端點可以在環境變數NS_LOGIN
、 NS_PASSWORD
和NS_URL
中提供。
Resources.tf 包含目標 ADC 上所需資源的所需狀態。例如,要在 ADC 中建立負載平衡虛擬伺服器,以下資源.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-ninto-api/en/12.0/configuration/ load-balancing/ lbverver/lbvverver/ 和Terraform 文檔,例如https://github.com/citrix/terraform-provider-citrixadc/blob/master/docs/resources/lbverver.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
以適合您自己的 NetScaler 部署。terraform plan
和terraform apply
來設定 NetScaler。 修改後端服務集並使用terraform plan
和terraform apply
驗證更改
提供者不會將設定變更提交至 Citrix ADC 的持久性儲存。為此,請執行 shell 腳本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 for ADC 的感覺。
使用 Terraform for ADC 的第一步是安裝 Terraform CLI。請參閱 Hashicorp 文檔,以了解如何為您自己的環境安裝 Terraform CLI。
請參閱瀏覽我們的存儲庫部分
請按照 NetScaler 上的 Terraform 入門一文進行第一個配置
若要為 Citrix ADC 撰寫 Terraform 資源,請參閱以下連結 NITRO API 文件或 terraform 註冊表文件。
這是您用來設定 SSL 卸載的 Terraform 範本。
請參閱提交更改部分
您想要查看 Terraform 中 ADC 實體的目前狀態
如果您想使用 Terraform 資源檔案中的配置覆蓋 ADC 配置,則
更新您的 terraform 狀態檔案以反映 ADC 的當前/真實狀態
在此處了解如何將現有 NetScaler 配置匯入 Terraform 資源
請參閱我們的 AWS terraform 雲端腳本和示範視頻
待定
我們的 Consul-Terraform-Sync 整合可讓使用者自動建立、更新和刪除 Citrix ADC 中與 Consul Terraform Sync 框架同步的服務群組。
整合 ADC 並對其進行配置,以方便使用 Terraform 進行藍綠部署。