terraform docs [2]

48 阅读1分钟

这是terraform的第二篇

terraform的概念

  • terraform init 这个命令是下载terraform相关的资源
  • terraform plan 表示执行计划,可以理解为预先执行返回执行结果
  • terraform apply 应用terrafrom相关的代码,这个必须在plan执行无报错的情况下

terraform供应商

terraform {
  required_providers {
    alicloud = {
      source = "aliyun/alicloud"
      version = "1.198.0"
    }
  }
}
provider "alicloud" { 
  profile = "akProfile" 
}
  • provider翻译提供者,后面跟alicloud表示阿里云,可以理解阿里云封装了自身云服务相关的sdk接口给我们使用;
  • terraform开头的部分,描述了provider的版本,以及register地址

terraform状态文件

当我们执行teraform apply以后,当前目录下会生成如下文件terraform.tfstate,该JSON文件保存了云上对应资源的状态

terraform资源

resource "alicloud_vpc" "vpc" {
  vpc_name   = "tf_test_foo"
  cidr_block = "172.16.0.0/12"
}
  • resource关键字,表示具体创建的资源
  • alicloud_vpc,表示阿里云提供的vpc资源
  • vpc创建资源的代码名称,我们可以修改为my-vpc,这个名称是供其他resource使用的
  • 在{}里的是对具体资源的描述,如vpc_name我们vpc的名称,cidr_block表示vpc的网段,这部分需要根据云厂商提供的文档去定义

继续添加资源

我么子创建了一个vpc,现在根据这个vpc再挂一个子网吧

resource "alicloud_vswitch" "vsw" {
  vpc_id     = alicloud_vpc.vpc.id
  cidr_block = "172.16.1.0/24"
  zone_id    = "cn-shenzhen-f"
}

添加资源,然后继续terraform plan, && apply