ユーザ用ツール

サイト用ツール


serverapps:configmgmt:terraform

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
serverapps:configmgmt:terraform [2018/10/10 19:20]
hayashi
serverapps:configmgmt:terraform [2024/01/19 16:19] (現在)
hayashi
行 3: 行 3:
 infraに特化 infraに特化
  
 +===== install =====
 +==== Ubuntu ====
 +<code>
 +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
 +</code>
 +
 +
 +===== 異なるtfstateファイルのリソースを参照する =====
 +==== 参照元 ====
 +  * 必要なリソース情報のoutputしておく
 +    * 今回の例ではtfstateはS3にあるものとする
 +
 +<code>
 +output "ec2_id" {
 +  value = "${aws_instance.***.id}"
 +}
 +</code>
 +==== リソース情報を参照 ====
 +参照用データソース作成
 +<code>
 +data "terraform_remote_state" "XXXXX" {
 +  backend = "s3"
 +
 +  config {
 +    bucket = "[BucketName]"
 +    key    = "path/to/terraform.tfstate"
 +    region = "ap-northeast-1"
 +  }
 +}
 +</code>
 +
 +参照する
 +
 +<code>
 +resource "aws_......" "***" {
 +  instance_id     = "${data.terraform_remote_state.XXXX.ec2_id}"
 +}
 +</code>
 +===== 特定のリソースのみを対象とする =====
 +
 +  $ terraform {plan|apply|destroy} -target={resource name}
 +
 +
 +===== 特定のアウトプットをコマンドで取得する =====
 +
 +  $ terraform output outputvalue
 +
 +===== terraformで自動で読込まれるVariableファイル =====
 +
 +カレントディレクトリの terraform.tfvars ファイルと *.auto.tfvars というsuffixのファイルが自動的に読み込まれる。
serverapps/configmgmt/terraform.1539166833.txt.gz · 最終更新: 2018/10/10 19:20 by hayashi