====== Terraform ======
hashi corp製。\\
infraに特化
===== install =====
==== Ubuntu ====
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
===== 異なるtfstateファイルのリソースを参照する =====
==== 参照元 ====
* 必要なリソース情報のoutputしておく
* 今回の例ではtfstateはS3にあるものとする
output "ec2_id" {
value = "${aws_instance.***.id}"
}
==== リソース情報を参照 ====
参照用データソース作成
data "terraform_remote_state" "XXXXX" {
backend = "s3"
config {
bucket = "[BucketName]"
key = "path/to/terraform.tfstate"
region = "ap-northeast-1"
}
}
参照する
resource "aws_......" "***" {
instance_id = "${data.terraform_remote_state.XXXX.ec2_id}"
}
===== 特定のリソースのみを対象とする =====
$ terraform {plan|apply|destroy} -target={resource name}
===== 特定のアウトプットをコマンドで取得する =====
$ terraform output outputvalue
===== terraformで自動で読込まれるVariableファイル =====
カレントディレクトリの terraform.tfvars ファイルと *.auto.tfvars というsuffixのファイルが自動的に読み込まれる。