前言
當看到每個 provider 完全不同的 resources 肯定嚇個半死 真心搭配學習使用,首先先學會一朵雲至少可以UI介面建置的程度,再來使用這工具,會有事半功倍的功效喔!
前提概要:需先手建GCP且將API先開啟
install
- terraformer - 此工具,且會使用 GCP為範例:docs
# install terraform
$ brew install terraform
$ terraform --version
Terraform v1.5.6
on darwin_arm64
# install terraformer
$ brew install --HEAD terraformer
$ terraformer --version
version v0.8.24
快速使用
# provider.tf
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "4.21.0" # (20230907 紀錄) 使用這版,使用太新的會噴錯誤
}
}
required_version = ">= 0.14"
}
# 需先去新增一個 Service Account 給與 Viewer 權限 新增一把 key
# 若是使用 gcloud 命令列 gcloud auth application-default login 登入且有 Viewer 權限亦可
$ export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/key.json
# 安裝依賴,由於 terragrunt base on terraform
$ terraform init
# terraformer import <provider> --resources=<導出項目> --regions=<地區> --projects=<GCP ProjectID>
$ terraformer import google --resources=instances --regions=asia-east1 --projects=gcp-project-id
會生成 generated 資料夾 裡面就是此 project 的 terraform 文件 建議搭配學習使用,可以快速的把 google resources 看過一遍