0

我需要为我们的每个客户创建一组相同数量的实例。让我们假设我的客户是沃尔玛、苹果和 eBay。每个客户都有相同数量的实例,但配置(子网、磁盘数量和磁盘大小、操作系统映像)会发生变化。所以我为每个客户创建了一个变量文件并用它来启动实例。到目前为止,一切都按预期工作。我可以为每个客户使用他们自己的配置启动实例,还可以根据需要修改实例。

现在,我正在尝试将状态文件从本地移动到远程。在backend.tf我如何采取key动态?经过调查backed.tf,不能接受任何插值(变量),因为它的加载时间远远早于 Terraform 的核心可以初始化。

  1. 我该如何解决这个问题?我尝试了以下方法,但init每次切换客户时都必须运行。

terraform init --backend-config "key=apple.tfstate"

  1. 我使用单独的变量文件创建实例的方法是否存在任何基本问题?

  2. 我是否需要为所有客户使用单一状态文件?如果是这样,我有 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


4

0 回答 0