获取帮助 [](https://spacelift.io/blog/terraform-commands-cheat-sheet#get-help) — 获取可用于执行的命令列表及其描述。可以与其他任何子命令结合使用以获取更多信息。 — 显示 命令 的帮助选项。 查看您的 Terraform 版本 [](https://spacelift.io/blog/terraform-commands-cheat-sheet#show-your-terraform-version) — 显示您当前使用的 Terraform 版本,并通知是否有新版本可供下载。 格式化您的 Terraform 代码 [](https://spacelift.
terraform -help — 获取可用于执行的命令列表及其描述。可以与其他任何子命令结合使用以获取更多信息。
terraform fmt -help — 显示fmt 命令 的帮助选项。
terraform version — 显示您当前使用的 Terraform 版本,并通知是否有新版本可供下载。
在创建配置文件后,应首先运行此命令以确保您的代码遵循 HCL 标准格式。这使得代码更易于阅读并有助于协作。
terraform fmt — 使用 HCL 语言标准格式化您的 Terraform 配置文件。
terraform fmt --recursive — 同时格式化子目录中的文件。
terraform fmt --diff — 显示原始配置文件与格式化更改之间的差异。
terraform fmt --check — 在自动化 CI/CD 管道中非常有用,check 标志可用于确保配置文件已正确格式化。如果未正确格式化,则退出状态将为非零值;如果格式正确,则退出状态为零。
terraform init — 为了使工作目录准备好使用 Terraform,terraform init 命令执行后端初始化、子模块安装和插件安装。
terraform init -get-plugins=false — 初始化工作目录,不下载插件。
terraform init -lock=false — 初始化工作目录,迁移后端时不保持状态锁定。
terraform init -input=false — 初始化工作目录,并禁用交互提示。
terraform init -migrate-state — 重新配置后端,并尝试迁移任何现有状态。
terraform init -verify-plugins=false — 初始化工作目录,不验证插件的 Hashicorp 签名。
请参阅我们的详细说明 terraform init 命令!
注意,这通常不需要,因为这是 terraform init 命令的一部分。
terraform get — 下载并安装 模块 以满足配置需求。
terraform get -update — 检查已安装模块的版本,并安装可用的新版本。
terraform validate — 验证目录中的配置文件,且不会访问远程状态或服务。应先运行 terraform init 命令。
terraform plan — 规划将生成一个执行计划,显示将要采取的操作而不会实际执行计划操作。
terraform plan -out=<path> — 将计划保存到给定路径。然后可以将其传递给 terraform apply 命令。
terraform plan -destroy — 创建一个计划来销毁所有对象,而不是通常的操作。
terraform apply — 根据配置文件创建或更新基础设施。默认情况下,会先生成一个计划,并需要确认才能应用。
terraform apply -auto-approve — 不需要交互输入“是”即可应用更改。在自动化 CI/CD 管道中非常有用。
terraform apply <planfilename> — 提供使用 terraform plan -out 命令生成的文件。如果提供,Terraform 将在没有确认提示的情况下执行计划中的操作。
terraform apply -lock=false — 在 Terraform 应用操作期间不持有状态锁。如果其他工程师可能会在同一工作区上运行并发命令,请谨慎使用。
terraform apply -parallelism=<n> — 指定并行运行的操作数量。
terraform apply -var="domainpassword=password123" — 传递变量值。
terraform apply -var-file="varfile.tfvars" — 传递包含在文件中的变量。
terraform apply -target=”module.appgw.0" — 仅对目标资源应用更改。
terraform destroy — 销毁 由 Terraform 管理的基础设施。
terraform destroy -target=”module.appgw.0" — 仅销毁目标资源。
terraform destroy -auto-approve — 不需要交互输入“是”即可销毁基础设施。在自动化 CI/CD 管道中非常有用。
使用 taint 命令 将资源标记为不完全功能。它将被删除并重新创建。
terraform taint vm1.name — 标记指定的资源实例。
terraform untaint vm1.name — 取消标记已经标记的资源实例。
terraform refresh — 使用包含管理资源信息的元数据更新状态文件。不会修改您的基础设施。
terraform show — 以人类可读的格式显示状态文件。
terraform show <path to statefile> — 如果想查看特定的状态文件,可以提供其路径。如果没有提供路径,则显示当前状态文件。
terraform state — 必须与以下子命令之一结合使用才能操作状态文件。
terraform state list — 列出当前状态文件中跟踪的所有资源。
terraform state mv — 移动状态中的项目,例如,当需要告诉 Terraform 某个项已被重命名时,例如 terraform state mv vm1.oldname vm1.newname。
terraform state pull > state.tfstate — 获取当前状态并输出到本地文件。
terraform state push — 从本地状态文件更新远程状态。
terraform state replace-provider hashicorp/azurerm customproviderregistry/azurerm — 更换提供者,当切换到使用自定义提供者注册表时很有用。
terraform state rm — 从状态文件中移除指定的实例。当资源在 Terraform 外手动删除时很有用。
terraform state show <resourcename> — 显示状态文件中的指定资源。
terraform import vm1.name -i id123 — 将具有 id123 的虚拟机导入到配置文件中定义的 vm1.name 下。
terraform import vm1.name -i id123 -allow-missing-config — 导入并允许如果配置块不存在。
请参阅我们的 Terraform 导入教程 了解更多信息。
terraform providers — 显示配置文件中使用的提供者及其要求的树状图。
terraform workspace — 必须与工作区命令结合使用以下子命令之一。工作区对于工程师想要测试代码的稍微不同版本时非常有用。不建议使用工作区来隔离或分离相同基础设施的不同开发阶段(例如,Dev / UAT / 生产)或不同的内部团队。
terraform workspace show — 显示当前工作区的名称。
terraform workspace list — 列出您的工作区。
terraform workspace select <workspace name> — 选择指定的工作区。
terraform workspace new <workspace name> — 使用指定名称创建新工作区。
terraform workspace delete <workspace name> — 删除指定的工作区。
terraform output — 列出当前状态文件中持有的所有 输出。这些输出默认在 terraform apply 结束时显示,如果您想独立查看它们,这个命令很有用。
terraform output -state=<path to state file> — 列出指定状态文件中持有的输出。
terraform output -json — 以 JSON 格式列出您的状态文件中的输出,使其机器可读。
terraform output vm1_public_ip — 列出您状态文件中持有的特定输出。
terraform force-unlock <lock_id> — 从您的工作区中删除带有指定锁 ID 的锁。当锁卡住时非常有用,通常是由于 Terraform 运行不完整导致的。
terraform login — 使用浏览器获取 Terraform Cloud 的 API 令牌(app.terraform.io)。
terraform login <hostname> — 登录到指定主机。
terraform logout — 登录后删除本地存储的凭据,默认为 Terraform Cloud(app.terraform.io)。
terraform logout <hostname> — 登录后删除指定主机名的本地存储凭据。
terraform graph — 使用 DOT 语言生成状态文件中对象之间依赖关系的图形。可以使用名为 Graphwiz(及其他程序)的程序渲染该图形。
terraform graph -plan=tfplan — 使用指定的计划文件(使用 terraform plan -out=tfplan 生成)生成依赖关系图。
terraform graph -type=plan — 指定要输出的图形类型,可以是 plan, plan-refresh-only, plan-destroy, 或 apply。
terraform console — 允许通过命令行在交互式控制台上测试和探索表达式。例如:1+2
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。