IaC基础设施即代码:Terraform 使用 provider 自定义提供者

目录

  一、实验

1.环境

2.Terraform 使用 provider 自定义提供者 (Resource)

3.Terraform 使用 provider 自定义提供者 (Module)


  一、实验

1.环境

(1)主机

表1-1 主机

主机系统软件工具备注
jia

Windows 

Terraform 1.6.6VS Code、 PowerShell、 Chocolatey

2.Terraform 使用 provider 自定义提供者 (Resource)

(1)查看项目

(2)主配置文件

main.tf ,资源里直接定义名称  provider   = alicloud.NJ

# Configure the Alicloud Provider 默认供应商
provider "alicloud" {
  access_key = var.access_key
  secret_key = var.secret_key
  region     = "cn-hangzhou"
}


provider "alicloud" {
  alias      = "NJ"
  access_key = var.access_key
  secret_key = var.secret_key
  region     = "cn-nanjing"
}

//VPC 专有网络
resource "alicloud_vpc" "vpc" {
  vpc_name   = "myvpc1"
  cidr_block = "172.79.0.0/16"
}

resource "alicloud_vpc" "vpc2" {
  provider   = alicloud.NJ
  vpc_name   = "myvpc2"
  cidr_block = "172.79.0.0/16"
}

(3) 版本配置文件

versions.tf

terraform {
  required_version = "1.6.6"
  required_providers {
    alicloud = {
      source  = "hashicorp/alicloud"
      version = "1.214.1"
    }
  }
}

(4)变量配置文件

variables.tf

variable "access_key" {
  description = "access_key"

}

variable "secret_key" {
  description = "secret_key"
}

(5) 密钥配置文件

terraform.tfvars

(6)初始化

terraform init

(7)格式化代码

terraform fmt

(8)验证代码

terraform validate

(9)计划与预览

 terraform plan

(10)申请资源

terraform apply

(11)展示资源

terraform show

(12)登录阿里云系统查看VPC

VPC已新增1个 (cn-hangzhou)

VPC已新增1个 (cn-nanjing)

(18)销毁资源

terraform destroy

3.Terraform 使用 provider 自定义提供者 (Module)

(1)查看项目

(2) moudule模块配置文件 

主配置文件main.tf

//VPC 专有网络
resource "alicloud_vpc" "vpc" {
  vpc_name   = var.vpc_name
  cidr_block = var.vpc_cidr_block
}

版本配置文件versions.tf

terraform {
  required_version = "1.6.6"
  required_providers {
    alicloud = {
      source  = "hashicorp/alicloud"
      version = "1.214.1"
    }
  }
}

变量配置文件variables.tf

variable "vpc_name" {
  
}

variable "vpc_cidr_block" {
  
}

(3)主配置文件

main.tf ,模块引用为map类型的键值对格式  providers = { alicloud = alicloud.NJ   }

# Configure the Alicloud Provider 默认供应商
provider "alicloud" {
  access_key = var.access_key
  secret_key = var.secret_key
  region     = "cn-hangzhou"
}

provider "alicloud" {
  alias      = "NJ"
  access_key = var.access_key
  secret_key = var.secret_key
  region     = "cn-nanjing"
}

module "myvpc" {
  source = "./vpc"
  vpc_name = "myvpc1"
  vpc_cidr_block = "172.78.0.0/16"
  providers = {
    alicloud = alicloud.NJ  
  }
}

(4) 版本配置文件

versions.tf

terraform {
  required_version = "1.6.6"
  required_providers {
    alicloud = {
      source  = "hashicorp/alicloud"
      version = "1.214.1"
    }
  }
}

(5)变量配置文件

variables.tf

variable "access_key" {
  description = "access_key"

}

variable "secret_key" {
  description = "secret_key"
}

(6) 密钥配置文件

terraform.tfvars

(7)初始化

terraform init

(8)格式化代码

terraform fmt

(9)验证代码

terraform validate

(10)计划与预览

 terraform plan

(11)申请资源

terraform apply

(12)展示资源

terraform show

(13)登录阿里云系统查看VPC

VPC已新增1个 (cn-nanjing)

(14) 销毁资源

terraform destroy

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值