こんばんは。9月なのにまだまだ暑くてエアコンを消せないです。

夜になるとちょっとましになるので、夜の散歩を日課にしたい季節です。。そんなことはともかく

今日はTerraform をやっていきましょう!いつもAWS でTerraform を使うことが多いのですが、今日は

GCP を使ってTerraform を書いていきましょう!!!ただ、今回はただ単にに書くのではなくて、

もうすでにあるリソースをTerraform のコードにするTerraform import をしていきます。

Terraform import を使うために

今回はTerraform import ではなく、Terraformer をつかっていきます。大元の情報はここからです。

WSL2 にTerraformerをインストールしていきましょう。公式ドキュメントから引っ張ってきた手順です。

これでインストールは完了です。

export PROVIDER=all
curl -LO "https://github.com/GoogleCloudPlatform/terraformer/releases/download/$(curl -s https://api.github.com/repos/GoogleCloudPlatform/terraformer/releases/latest | grep tag_name | cut -d '"' -f 4)/terraformer-${PROVIDER}-linux-amd64"
chmod +x terraformer-${PROVIDER}-linux-amd64
sudo mv terraformer-${PROVIDER}-linux-amd64 /usr/local/bin/terraformer

参考サイトです。

https://github.com/GoogleCloudPlatform/terraformer/tree/master

Terraformer import 実行してみる

いざ実際に実行してみると、、、うん??Credential ってなんだ??

ちなみに実行コマンドは、こんな感じです。

terraformer import google --resources=networks --projects=<your_project_name>
2024/09/16 16:29:19 google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
2024/09/16 16:29:19 google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information.
2024/09/16 16:29:19 google importing... networks

きっとprovider に定義しているaccess key とかのことだとは思ったんですが、それってどうやって定義

するんだって、悩みました。Google Cloud のドキュメントを見てみると、「アプリケーションのデフォ

ルト認証情報(ADC)」これだ。。。。ってなりました。なので、これをexport してあげて、

export GOOGLE_APPLICATION_CREDENTIALS="KEY_PATH"

もう一回実行してみると。。。上手くいきました!!!参照したドキュメントも載せておきます

https://cloud.google.com/docs/authentication/provide-credentials-adc?hl=ja#local-dev

generated というのが同じ階層に作られるので、networks のtf ファイルが作成されていると問題なく

ちゃんと実行されています。

まとめ

ドキュメントをよく読みましょう。。。。ですね。Terraform import してインフラを管理していきましょーー。検証環境も色々作っていきます!!!ではでは。。。

参考サイト:

Terraform GCP ローカル環境構築手順:

https://dev.classmethod.jp/articles/accesse-google-cloud-with-terraform/