Open3

Terraformの基礎を学ぶ

KeigoIbarakiKeigoIbaraki

業務でTerraformを触る機会がありますが、自分で環境を構築した経験が乏しいので、さまざま学ぶための場です。知見が溜まってきたら本に移行していこうと思います。

  • HCLについて
KeigoIbarakiKeigoIbaraki

HCLについて

HCLとは

HashiCorpLanguageの略でHashiCorp社の独自言語。

HCLの特徴

  • コメントの記載が可能
  • key, valueを = で繋ぐ
  • ブロック表現をする
resource <RECOURCE_TYPE> <RESOURCE_NAME)> {
    # コメント
    ...
}
  • jsonに似ている

主なブロックタイプについて

名称 用途
locals ローカル変数。プライベートな変数で外部から変更できない。
variable 外部から変更可能な変数。コマンドライン実行時にオプションやファイル指定で上書きできる。
terraform Terraformの設定
provider プロバイダ
data Terraform管理していないリソースの取り組み
resource Terraform管理対象となるリソース
output 外部から参照できるようにする値

locals

locals {
  x = "xxx"
  y = "yyy"
}

variavle

variable "x" {
  type = string
  default = "xxx"
}
KeigoIbarakiKeigoIbaraki

backend.tf を無効にしたときの "-reconfigure" or "-migrate-state" の違いを確認する

╷
│ Error: Backend initialization required, please run "terraform init"
│ 
│ Reason: Unsetting the previously set backend "gcs"
│ 
│ The "backend" is the interface that Terraform uses to store state,
│ perform operations, etc. If this message is showing up, it means that the
│ Terraform configuration you're using is using a custom configuration for
│ the Terraform backend.
│ 
│ Changes to backend configurations require reinitialization. This allows
│ Terraform to set up the new configuration, copy existing state, etc. Please run
│ "terraform init" with either the "-reconfigure" or "-migrate-state" flags to
│ use the current configuration.
│ 
│ If the change reason above is incorrect, please verify your configuration
│ hasn't changed and try again. At this point, no changes to your existing
│ configuration or state have been made.
╵