🕊️
Terraformerを利用してGCPクラウド環境をコード化する
はじめに
Terraformerは、HashiCorpが提供するオープンソースのInfrastructure as Code(IaC)ツールで、様々なクラウド環境(Google Cloud、AWS、Azureなど)のリソースをTerraformのコードとしてエクスポートできるツールです。
今回はTerraformerを使ってTerraformのコードを出力する手順についてまとめました。
インストール
ここではWindows環境にTerraformerをインストールする方法を紹介します。
- terraformerのリリースページから必要なプロバイダのexeファイルをダウンロードします。
- ダウンロードしたファイルをterraformer.exeにリネームして任意のフォルダに配置し、パスを通します。
-
terraformer --version
でバージョンが表示されることを確認します。
Go言語がインストールされている場合はこちらの方法でもインストール可能です。
git clone https://github.com/GoogleCloudPlatform/terraformer.git
cd terraformer
go build -o terraformer.exe
Terraformerの実行
- 任意のフォルダを作成してmain.tfを作成します。
プロバイダやバージョンは環境に合わせて変更してください。こちらはGCPの実行例です。
main.tf
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "~> 4.38.0"
}
}
required_version = ">= 1.0.11"
}
2. 作成したフォルダでterraform initを実行し、必要なプラグインをインストールします。
terraform init
3. terraformerを実行してインフラコードを取得します。
terraformer import google --resources="*" --projects=<project_name>
--resources
でリソースを取得するサービスの種類を指定します。
--resources="*"
で全てのサービスのリソースを取得します。
--resources=gcs,cloudbuild
の様に記載することで、特定のリソースのみを取得します。
listオプションを付けて実行することで、指定可能なリソール名を一覧表示できます。
> terraformer import google list --projects=<project_name>
addresses
autoscalers
backendBuckets
backendServices
bigQuery
cloudFunctions
cloudbuild
cloudsql
cloudtasks
dataProc
disks
dns
externalVpnGateways
firewall
forwardingRules
gcs
gke
terraformer importを実行すると、generatedというフォルダが作成され、フォルダ内にTerraformのコードが生成されます。
generated
└─google
└─<project_name>
├─addresses
│ └─global
│ provider.tf
│ terraform.tfstate
│
├─autoscalers
│ └─global
│ provider.tf
│ terraform.tfstate
│
├─backendBuckets
│ └─global
│ provider.tf
│ terraform.tfstate
│ variables.tf
│
まとめ
今回はGCPを使用しましたが、他のクラウドプロバイダでも同様の手順で利用可能です。
より詳細な情報や設定については、公式のドキュメントを参照してください。
Discussion