Terraform是什么?
最近我有机会使用terraform,所以想把笔记留下来。
目标受众
-
- terraformに興味はあるが実際に触ったことがない人
-
- IaCを触ってみたい人
- 大雑把にterraformの概念だけ知っておきたい人
Terraform是什么?
terraform是一种被称为IaC工具的工具,它能够将基础架构配置作为源代码进行管理。
需要注意的是,它只能管理基础架构配置,无法进行服务器内部的用户设置和库安装等操作。
如果想要管理服务器内部,可以考虑使用镜像部署或者结合ansible等工具来进行管理。
terraform执行顺序
在编写文件之前,我们先简要地介绍一下terraform的实际运行顺序。假设你已经安装了terraform的命令行界面(CLI)。
-
- terraformファイルを書く
-
- terraform init で初期化する
対象cloudへの認証処理が走る
依存ファイルを取得してくる
リソースなどメタ情報が詰まったファイル(state ファイル)が生成される
実行結果を確認しながらファイルを修正
実際に実行してインフラなどを立ち上げる
尽管在明确的安装命令方面有所差异,但就直觉而言,它与npm或go的获取模块类似。
Terraform的特点是什么?
Terraform使用独特的扩展名tf文件和编程语言来描述处理过程,而不是使用通用的文件格式,例如JSON。以下是官方提供的示例。
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 3.27"
}
}
required_version = ">= 0.14.9"
}
provider "aws" {
profile = "default"
region = "us-west-2"
}
resource "aws_instance" "app_server" {
ami = "ami-830c94e3"
instance_type = "t2.micro"
tags = {
Name = "ExampleAppServerInstance"
}
}
原生中文翻译:云原生基础设施管理工具
在natively in chinese进行的切词和生成过程策略的帮助下,以下是原文的汉语翻译:
第一个名为terraform的块是用来配置terraform自身的。你可以指定依赖库的版本,以及指定存放元数据的state文件的位置。
提供者
提供者是指定与AWS等云服务通信所需的信息。这些信息包括区域和认证信息等。本次我们通过指定AWS的配置文件来读取认证信息,并明确指定了区域。
如果您想查看其他提供商,请参考以下链接:
https://registry.terraform.io/browse/providers
资源
资源是指实际构建的基础设施,如数据库和服务器等。资源后面的字符串分别指定资源名称和变量名称。通过指定资源名称,可以在resource代码块中编写AWS的lamda或dynamo等基础设施的配置内容。
当我们想要引用变量名来查看资源所指定的基础设施内容时,可以使用它。就像下面这样的感觉。
resource "aws_instance" "app_server" {
ami = "ami-830c94e3"
instance_type = "t2.micro"
name ="test"
tags = {
Name = "ExampleAppServerInstance"
}
}
resource "aws_db" "db" {
# app_serverの情報を参照
name = app_server.name
}
请查看以下链接中列出的实际AWS资源,并进行确认。
https://registry.terraform.io/providers/hashicorp/aws/latest/docs
初始化、确认和执行
将其设定为初始状态
完成文件后,我们执行terraform命令中的”terraform init”。这将进行初始化和认证操作。一旦成功访问指定平台的供应商并获取依赖文件,初始化就完成了。如果成功,将在存放文件的目录中生成以下文件:
.terraform
.terraform.lock.hcl
确定
当执行terraform plan时,它会检查以下内容。
-
- 使用しているアカウントの権限のチェック
AWSでEC2インスタンを立ち上げる権限を持っているかなど
文法のチェック
最終的に生成されるリソースのチェック
DBのアカウントなど
执行
当执行terraform apply时,它会实际生成资源。
如果执行成功,我们可以在平台控制台上检查指定的资源是否已生成。
最后
如果能以代码方式进行管理,基础设施就可以成为一个秘密的调料,这样会让人觉得很高兴。祝您拥有愉快的 Terraform 生活。