使用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

创建工作区

スクリーンショット 2019-12-03 0.16.29.png
スクリーンショット 2019-12-03 0.18.44.png
スクリーンショット 2019-12-03 1.03.19.png

创建各个环境的工作空间

当启动「common」的 Workspace 后,也会创建「dev」「stg」「prd」的 Workspace。

在创建时,会根据每个环境配置 Terraform Working Directory 如下所示。

dev: 「./environments/dev」 
stg: 「./environments/stg」 
prd: 「./environments/prd」 
スクリーンショット 2019-12-03 1.21.35.png
スクリーンショット 2019-12-03 1.25.59.png
スクリーンショット 2019-12-03 1.30.19.png
スクリーンショット 2019-12-03 1.44.25.png
スクリーンショット 2019-12-03 1.52.05.png
スクリーンショット 2019-12-03 2.30.43.png

总结

通过使用Terraform Cloud,您可以轻松地管理tfstate和与GitHub的连接。此外,通过将tf文件分在每个环境的目录中,并创建相应的工作区,您将能够同时管理多个环境。由于9月的更新,Terraform Cloud变得非常易于使用,所以在团队中使用Terraform时,请务必试用一下!

广告
将在 10 秒后关闭
bannerAds