Go言語でTerraform with GCP

プログラミング

インフラ周りの設定が前回のブログ解説でそこそこ頭に馴染んできたので、今回はTerraformで インスタンスを立ち上げてみようと思いました。Terraformは 前々から気になっていたのですが、内容がぱっと見よくわからなかったので、どうしても学習と言うハードルが高く見えてしまい、敬遠してました。 しかし、golangでかけることが わかりましたのでやっていこうと思いました。

参考にした情報はこちらになります。

まずはこの記事の通りにできるかどうかをチェックしていきます。

とりあえず、GCPのCLIがなかったのでインストールしました。過去にインストールしてあった形跡があったので、改めてインストールした後は gcloud init しました。

つぎにcdktfのインストールですが、記事ではnpmでのinstallを使っていましたが、自分のマシンにxcodeが入ってないためビルドができずエラーが発生。その代わり、brewでinstallしました。

cdktfでinitコマンドを動かすディレクトリをgolandでgoプロジェクトとして作成したあと、initを動かすと空のディレクトリではないというエラーが出たので、プロジェクト作成で自動作成されたgo.modを削除し、initを改めて実施。色々聞かれているものを記事と同じにして終了。諸々のファイルが作成されました。

ここから先はコードの写経に入りたかったのですが、providerというものが解決できず。調べてみるとgithub.com/cdktf/cdktf-provider-google-go/google/v13/provider というライブラリをつかえば良いらしいのでimportに追加しました。ただ、最後の方にコード全文がありましたので、そちらにもっと早く気づけばよかったと思いました。。。コードに関する記事を書く時の注意点に加えておこうと思いました。

最後に作りたいインスタンスの設定を適宜変更しました。無料枠のあるuse-central1のf1-microに設定してcdktf deploy するとちゃんとインスタンスが作られているのを確認しました。インスタンスの名称規約に引っかかったりはしましたが、インスタンス作成失敗時のエラーログを確認して対応すればすんなりできました。そしてcdktf destroy してインスタンスが削除されていることも確認。

やってみて分かったのですが、インスタンスの設定値をいれるためには、そもそもの設定を知ってないとできないため、一旦自分でUI越しに作成したものをコードに置き直すという手順で他のコンポーネントもTerraformしてみようかと思いました。

コメント

タイトルとURLをコピーしました