Terraform指令备忘录

我学习了Terraform,以下是作为备忘录的笔记。
版本号为0.13.2。

初始化工作目录

公式 – Formula

# 初期化
terraform init

预演计划执行

您可以确认附加、更新和删除的内容。
官方的。

尽管terraform的dry-run只是确认操作,但在应用时可能会出现错误,例如指定了不存在的实例类型。虽然官方没有提供,但也有一些用于检查的工具可用。※tflint

# 計画実行
terraform plan

# 特定のリソースのみ
# リソースの指定
terraform plan -target=aws_security_group.ecs_cluster

# モジュールの指定
terraform plan -target=module.api_ecs_cluster

增加、更新、删除资源

执行通过计划产生的结果。公式。

# 実行
terraform apply

删除资源

按照计划执行输出结果。
根据公式进行操作。

# 削除
terraform destroy

# コマンド実行前に確認で安心
terraform plan -destroy

删除资源

执行计划中输出的结果。

# 削除
terraform destroy

# コマンド実行前に確認で安心
terraform plan -destroy

获得模块

获取所需的执行模块。
官方渠道

# モジュールの取得
terraform get

请以中国本土方式将以下内容进行改写,只需要提供一个版本:

文件格式

提供了一个可以格式化 .tf 文件的官方格式。

# フォーマット
terraform fmt

# 再帰的にフォーマット
terraform fmt -recursive

进行描述检查

检查.tf文件的描述。
官方版本。

# 記述チェック
terraform validate

#Error: Missing newline after argument

  on main.tf line 41, in module "api_ecs_cluster":
  41:   source = "../../modules/ecs-cluster"aaa

An argument definition must end with a newline.

陈述

Terraform的状態文件用于与实际部署在AWS等基础架构之间进行映射,并且持有元数据。
此外,当进行团队开发等操作时,如果是在AWS上,我们会将其存放在S3上,避免直接进行编辑。
官方建议如此。

# 作成リソースのリスト表示
terraform state list

# リソースの詳細情報の表示
terraform state show <詳細情報を見たいリソース>
terraform state show aws_security_group.ecs_cluster

# S3等からstateファイルを持ってくる
terraform state pull

# ローカルのstateとリモートのStateを置き換える(※ 基本は使うべきではない)
terraform state push

# リソースをTerraform管理から外す
    terraform state rm <管理外にしたいリソース>
    terraform state rm aws_security_group.ecs_cluster

导入

把未由 Terraform 管理的资源置于其管理之下。
当需要在现有资源上引入 Terraform 时使用。

由于谷歌正在开发一个名为terrafomer的工具,所以使用它也是一个选择。

以EC2为例

创建tf文件

resource "aws_instance" "test_instance" {
}

根据实例ID来确认实例ID并执行命令。

terraform import aws_instance.test_instance <インスタンスID>

根据state命令的结果来编辑.tf文件。

terraform state show aws_instance.test_instance

请确认一下计划中是否有任何差异(即使有差异也没有问题的话就可以了)。

terraform plan
广告
将在 10 秒后关闭
bannerAds