0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

terraformで初めてリソースを作る時の自分なりのコツを雑にメモしていく

Posted at

よくわからないリソースをterraformで書かなきゃいけなくなった時に、こうすると早いんじゃないかという方法を雑にメモしていきたい。

具体例としてGoogle CloudのGoogle Cloud Storageを初めて作成する時を例にする。

コンソール上で作ってみる

まずはコンソール(UI)上でリソースを作ってみます。
ついでに動作を確認しても良いかもしれないです。

今回の例で言うとGoogle Cloudのコンソール上でGoogle Cloud Storageのバケットをぽちぽち作成する。

「terraform {リソース名}」でググる

検索エンジンで「terraform {リソース名}」で検索を行うと、大体対象リソースを作成するためのterraform公式サイトが一番上に出てくるので見る。

今回の例で言うと「terraform google storage」で検索して以下のサイトを見つける。
https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/storage_bucket

terraform公式サイトの例をコピペして.tfファイルを作る

terraform公式サイトの上の方にExample Usageといった形で具体的なサンプルコードが書いてあるので、これをコピペして.tfファイルを作成する。

今回の例で言うと以下のような感じ。

resource "google_storage_bucket" "static-site" {
  name          = "image-store.com"
  location      = "EU"
  force_destroy = true

  uniform_bucket_level_access = true

  website {
    main_page_suffix = "index.html"
    not_found_page   = "404.html"
  }
  cors {
    origin          = ["http://image-store.com"]
    method          = ["GET", "HEAD", "PUT", "POST", "DELETE"]
    response_header = ["*"]
    max_age_seconds = 3600
  }
}

手動で作ったリソースをインポートする

今回の例で言うと以下のようにしてインポートする。
terraform import google_storage_bucket.static-site {project_id}/{bucket_name}

import直後のgoogle_storage_bucket.static-siteは先ほどのコピペしたコードのリソースタイプとローカル名を書く。
最後のリソースの指定の仕方は公式サイトの下の方に「import」という項目があるので、それを見るとどのようにインポートすれば良いかわかる。今回はプロジェクトIDとバケット名をスラッシュで繋げたものを書く。

.tfファイルにインポートしたものを反映する

今回の例で言うとterraform showでインポートしたリソースを表示できるので、表示されたコードをまるっとコピーして、先ほどの.tfファイルのコピペ部分に上書きする。あとはterraform planをしながらerrorを直しながら手動で作成したリソースのterraformコードを完成させる。

最後に

ChatGPT的な生成AIツールと組み合わせるとインフラエンジニアでなくてもなんちゃってterraformコードをスラスラ書ける。でもセキュリティには要注意。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?