使用Terraform Cloud来配置多个环境
我是QualiArts Advent Calendar 2019的第五天负责人8kka。
这次我将写一下使用Terraform Cloud管理多个环境的方法。
Terraform 云
Terraform Cloud是一款用于团队操作Terraform并能够安全共享状态并进行变更管理的应用程序。
在2019年9月10日的更新中,该功能得到了大幅度的扩展。
在同一个团队工作的情况下,最多可免费使用5个人,可以管理tfstate,与GitHub进行协作,执行计划和应用等基本命令。
使用Terraform进行多环境管理
在业务中使用Terraform时,需要管理多个环境,如production、staging、development等。
本次将介绍如何配置Terraform Cloud以在多个环境中运营。
配置将在共享网络中为每个环境创建子网络,并将gce实例逐个放置。
Terraform的目录结构
terraform-dev
├── environments
│ ├── common # 共通リソースを作成する (network)
│ │ ├── backend.tf
│ │ ├── main.tf
│ │ └── provider.tf
│ ├── dev # development用のリソースを作成する (subnetwork, gce)
│ │ ├── backend.tf
│ │ ├── main.tf
│ │ └── provider.tf
│ ├── prd # production用のリソースを作成する (subnetwork, gce)
│ │ ├── backend.tf
│ │ ├── main.tf
│ │ └── provider.tf
│ └── stg # staging用のリソースを作成する (subnetwork, gce)
│ ├── backend.tf
│ ├── main.tf
│ └── provider.tf
└── modules
├── gce
│ ├── main.tf
│ └── variables.tf
├── network
│ ├── main.tf
│ └── variables.tf
└── subnetwork
├── main.tf
├── output.tf
└── variables.tf
创建工作区
创建各个环境的工作空间
当启动「common」的 Workspace 后,也会创建「dev」「stg」「prd」的 Workspace。
在创建时,会根据每个环境配置 Terraform Working Directory 如下所示。
dev: 「./environments/dev」
stg: 「./environments/stg」
prd: 「./environments/prd」
总结
通过使用Terraform Cloud,您可以轻松地管理tfstate和与GitHub的连接。此外,通过将tf文件分在每个环境的目录中,并创建相应的工作区,您将能够同时管理多个环境。由于9月的更新,Terraform Cloud变得非常易于使用,所以在团队中使用Terraform时,请务必试用一下!