Terraform 的安装很容易,从官方网站下载二进制文件解压以后 就能够直接使用了。
https://www.terraform.io/git
以windows为例的话,我为了在cmd里面直接使用,须要把下载解压后的文件加入到环境变量Path里面。github
使用的话,直接先看两个简单的例子。windows
例1 在指定的AWS 帐号里面建立一个新的EC2 实例,他有多种验证的方式,这里咱们使用最简单的静态密码验证(很是不安全)安全
https://registry.terraform.io/providers/hashicorp/aws/latest/docsapp
provider "aws" { region = "us-west-2" access_key = "AK2342LKSDFJKSLFSDFX" secret_key = "fwssdjk22342lkshdsiwerwl1FaK82Fkz9" } resource "aws_instance" "myec2" { ami = "ami-0e999cbd62129e3b1" instance_type = "t2.micro }
相关的文档能够在这里看见ide
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/instance学习
把这个文件保存为一个first_ec2.tf 文件。网站
而后切换到这个目录下面,执行 terraform init, 他会自动咱们下载咱们在tf文档里面定义的provider 的 插件,在上面的例子里面,我定义的是 "aws", 他就会自动下载对应的插件。我这里没有指定插件的版本,那么他会自动下载最新版本。插件
官方推荐,在使用的时候应该尽可能明确地定义版本号3d
执行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里指定。可是通常说来,一个比较好的习惯是把不一样的资源放在不一样的文件夹里面,这样避免互相冲突。