这是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