嗨,读者朋友们,在这篇文章中,我们将探讨如何建立构建基础设施 - Terraform GCP实例。我们将讨论其基础知识和关键组件。
安装好Terraform后,你就可以创建一些基础设施了。
前提条件
- 一个谷歌云平台账户。如果你没有GCP账户,现在就创建一个。
- 本地安装Terraform 0.15.3+。
设置GCP
创建GCP账户后,创建或修改以下资源,使Terraform能够配置你的基础设施。
- 一个GCP项目。GCP将资源组织成项目。现在就在GCP控制台中创建一个,并记下项目ID。
- Google Compute Engine。在GCP控制台中为你的项目启用Google Compute Engine。
- 一个GCP服务账户密钥。创建一个服务账户密钥,使Terraform能够访问你的GCP账户。
编写配置
用来描述Terraform基础设施的一组文件被称为Terraform配置。现在你将编写你的第一个配置来创建一个网络。
每个Terraform配置必须在自己的工作目录中。为你的配置创建一个目录。
$ mkdir learn-terraform-gcp
进入该目录。
$ cd learn-terraform-gcp
Terraform会加载工作目录中所有以.tf 或.tf.json 结尾的文件。为你的配置创建一个main.tf 文件。
$ touch main.tf
在文本编辑器中打开main.tf ,并粘贴以下配置。确保用你下载的服务账户密钥文件的路径替换<NAME> ,用你的项目ID替换<PROJECT_ID> ,并保存该文件。
terraform {
required_providers {
google = {
source = "hashicorp/google"
version = "3.5.0"
}
}
}
provider "google" {
credentials = file("<NAME>.json")
project = "<PROJECT_ID>"
region = "us-central1"
zone = "us-central1-c"
}
resource "google_compute_network" "vpc_network" {
name = "terraform-network"
}
Terraform块
terraform {} 块包含Terraform设置。对于每个提供者,source 属性定义了一个可选的主机名、一个命名空间和提供者类型。
version 属性是可选的,但我们建议使用它来强制执行提供者的版本。没有它,Terraform将总是使用最新版本的提供者,这可能会带来破坏性的变化。
提供者
provider 块配置指定的提供者,在这里是google 。提供者是一个插件,Terraform使用它来创建和管理你的资源。你可以在Terraform配置中定义多个提供者块,以管理不同提供者的资源。
资源
使用resource 块来定义基础设施的组成部分。一个资源可能是一个物理组件,如服务器,也可能是一个逻辑资源,如Heroku应用程序。
资源块前面有两个字符串:资源类型和资源名称。资源类型和资源名称共同构成了资源的唯一ID。例如,你的网络的ID是google_compute_network.vpc_network 。
初始化目录
当你创建一个新的配置--或从版本控制中检查出一个现有的配置--你需要用terraform init 来初始化目录。这一步会下载配置中定义的提供者。
初始化目录。
$ terraform init
terraform init 命令会打印出Terraform安装的提供者版本。Terraform还创建了一个名为.terraform.lock.hcl 的锁文件,该文件指定了所使用的提供者的确切版本,以确保每次Terraform运行都是一致的。这也使你能够控制何时升级配置中使用的提供者。
格式化和验证配置
terraform fmt 命令会自动更新当前目录下的配置,以保证可读性和一致性。
格式化你的配置。Terraform将打印出它所修改的文件的名称,如果有的话。在这种情况下,你的配置文件已经被正确格式化,所以Terraform不会返回任何文件名。
$ terraform fmt
你也可以通过使用terraform validate 命令,确保你的配置在语法上是有效的,并且内部一致。
验证你的配置。上面提供的配置示例是有效的,所以Terraform将返回一个成功信息。
$ terraform validateSuccess! The configuration is valid.
创建基础设施
现在使用terraform apply 命令应用配置。Terraform将打印出类似于下图的输出。为了简洁起见,我们截断了一些输出。
$ terraform apply
Enter a value: yes
现在你已经用Terraform创建了基础设施访问GCP控制台,查看你配置的网络。确保你看到的是你在提供者配置中所配置的同一个区域和项目。
检查状态
当你应用你的配置时,Terraform将数据写入一个名为terraform.tfstate 的文件中。Terraform把它所管理的资源的ID和属性存储在这个文件中,这样它就可以更新或销毁这些资源。
使用terraform show ,检查当前状态。
$ terraform show
当Terraform创建这个网络时,它也从谷歌供应商那里收集了它的元数据,并记录在状态文件中。
我希望你通过这篇博客对构建基础设施--Terraform GCP实例有一个快速的了解。
