您的位置:首页 > 其它

Terraform 学习笔记(1)

fenglingwan 2021-02-22 20:06 75 查看 https://blog.51cto.com/beanxyz

Terraform 的安装很容易,从官方网站下载二进制文件解压之后 就可以直接使用了。
https://www.terraform.io/

以windows为例的话,我为了在cmd里面直接使用,需要把下载解压后的文件加入到环境变量Path里面。

使用的话,直接先看两个简单的例子。

例1 在指定的AWS 账号里面创建一个新的EC2 实例,他有多种验证的方式,这里我们使用最简单的静态密码验证(非常不安全)

https://registry.terraform.io/providers/hashicorp/aws/latest/docs

provider "aws" {
region     = "us-west-2"
access_key = "AK2342LKSDFJKSLFSDFX"
secret_key = "fwssdjk22342lkshdsiwerwl1FaK82Fkz9"
}

resource "aws_instance" "myec2" {
ami = "ami-0e999cbd62129e3b1"
instance_type = "t2.micro
}

相关的文档可以在这里看见

https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance

把这个文件保存为一个first_ec2.tf 文件。

然后切换到这个目录下面,执行 terraform init, 他会自动我们下载我们在tf文档里面定义的provider 的 插件,在上面的例子里面,我定义的是 "aws", 他就会自动下载对应的插件。我这里没有指定插件的版本,那么他会自动下载最新版本。

官方推荐,在使用的时候应该尽量明确地定义版本号

执行init 之后的效果

初始化之后,然后执行 terraform plan, 他会检测tf文件,然后告诉你哪些资源进行了改变

如果检测无误,可以执行 terraform apply, 那么他就开始配置了

配置成功

例2 配置一个github的repository,他的方式和EC2 很类似,只不过是验证的方式略有不同
https://registry.terraform.io/providers/integrations/github/latest/docs

provider "github" {
token = "574e72342kklfsfsf2d1359064f76ca85aac1"
}

resource "github_repository" "example" {
name = "terraform"
description = "terraform test "
visibility = "public"

}

https://registry.terraform.io/providers/integrations/github/latest/docs/resources/repository

同样的操作,可以看见成功创建了repository

当我们执行上面的操作时候,他会自动创建、更新一个terraform.tfstate的文件

这个文件会自动保存我们所创建资源的相关信息和属性,以便于追踪

如果说我们对tf文档进行了修改,比如说我把上面的t2.micro 改成 t2.small,然后重新执行 terraform plan, terraform apply

可以看见对应的tfstate文件内容也变更了

如果我们想删除创建的资源,可以用 terraform destory 来删除,如果只打算删除部分资源,可以通过-target里指定。但是一般说来,一个比较好的习惯是把不同的资源放在不同的文件夹里面,这样避免互相冲突。

标签: