首次使用Terraform

Terraform是什么?

Terraform是由HashiCorp开发的IaC工具(即基础设施即代码)。

使用Terraform,可以将云资源如Azure编码,实现版本管理、重复利用和共享等功能。

通过将基础设施进行编码化,可以获得以下优点。

    • 効率的にインフラ環境を構築できる:コード化が完了していればTerraformを実行するだけで、定義されたリソース設定を基に構築してくれます。

 

    • 人的ミスの削減:Terraformが自動的にインフラを構築してくれるため、ヒューマンエラーを防ぐことができます。

 

    保守性の向上:インフラがコード化されたことによりGithubなどでバージョン管理を行うことができるようになりました。これにより、大規模な構成でもメンテナンスが行いやすくなります。

Terraform的基本工作流程

在Terraform中的常见工作流程如下:

    1. 编写(写代码):通过代码定义想要构建的资源。

 

    1. 计划(确认更改内容):比较云上的基础设施和配置与定义的资源的代码。在执行下一步的应用(应用更改)时,它会告诉您资源是被创建、更新还是丢弃。通过”terraform plan”命令来执行。

 

    应用(应用更改):将编码的资源配置应用到云上。通过”terraform apply”命令来执行。

怎么写?

在Terraform中,我们使用一种称为HCL(HashiCorp Configuration Language)的语法来描述定义资源配置。

这个例子是用HCL在Azure中定义资源组的代码。

resource "azurerm_resource_group" "example" {
	name     = "example-resources" 
	location = "West Europe"
}

在资源这个块中,指定了资源名称和区域。

你是如何在云端对资源和代码进行比较的?

Terraform保存资源状态的文件名为terraform.tfstate,并以JSON格式保存。

当执行 terraform plan 时,通过比较 terraform.tfstate 和编码的资源配置,我们可以了解资源的变化情况。所以能够执行 terraform plan 是因为有了 terraform.tfstate。

每次执行 terraform apply 都会更新 terraform.tfstate 文件,以确保始终保持最新的状态。

推荐将其存储在云上,尽管默认情况下会自动生成在本地。

结束

由于在业务中似乎要使用Terraform,所以我简单总结了一下。

顺便提一下,据说HashiCorp这个名字是由创始人Mitchell Hashimoto先生的名字得来的。

广告
将在 10 秒后关闭
bannerAds