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 将云 API 编码为声明性配置文件。 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/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
以适合您自己的 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 进行蓝绿部署。查看解决方案