Open3
Terraformの基礎を学ぶ
業務でTerraformを触る機会がありますが、自分で環境を構築した経験が乏しいので、さまざま学ぶための場です。知見が溜まってきたら本に移行していこうと思います。
- HCLについて
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"
}
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.
╵