我需要为我们的每个客户创建一组相同数量的实例。让我们假设我的客户是沃尔玛、苹果和 eBay。每个客户都有相同数量的实例,但配置(子网、磁盘数量和磁盘大小、操作系统映像)会发生变化。所以我为每个客户创建了一个变量文件并用它来启动实例。到目前为止,一切都按预期工作。我可以为每个客户使用他们自己的配置启动实例,还可以根据需要修改实例。
现在,我正在尝试将状态文件从本地移动到远程。在backend.tf
我如何采取key
动态?经过调查backed.tf
,不能接受任何插值(变量),因为它的加载时间远远早于 Terraform 的核心可以初始化。
- 我该如何解决这个问题?我尝试了以下方法,但
init
每次切换客户时都必须运行。
terraform init --backend-config "key=apple.tfstate"
我使用单独的变量文件创建实例的方法是否存在任何基本问题?
我是否需要为所有客户使用单一状态文件?如果是这样,我有 40 多个客户,将所有客户放在一个文件中可能有风险/庞大/缓慢,对吗?
我没有使用 Terraform Enterprise 或 Terraform Cloud。请让我知道如何进行。谢谢!
我使用以下命令应用 terraform 更改
terraform apply -var-file=customers/apple.tfvars -state=statefile/apple.tfstate
terraform apply -var-file=customers/walmart.tfvars -state=statefile/walmart.tfstate
文件夹结构
├── main.tf
└── variables.tf
├── gcp_compute_disk
│ ├── gcp_compute_disk.tf
│ └── variables.tf
├── gcp_instance
│ ├── gcp_instance.tf
│ └── variables.tf
├── customers
│ ├── apple.tfvars
│ ├── ebay.tfvars
│ ├── walmart.tfvars
├── statefile
│ ├── apple.tfstate
│ ├── ebay.tfstate
│ ├── walmart.tfstate