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

目录

  一、实验

1.环境

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

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


  一、实验

1.环境

(1)主机

表1-1 主机

主机 系统 软件 工具 备注
jia

Windows 

Terraform 1.6.6 VS Code、 PowerShell、 Chocolatey

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

(1)查看项目

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第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"
}

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第2张图片(3) 版本配置文件

versions.tf

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

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第3张图片

(4)变量配置文件

variables.tf

variable "access_key" {
  description = "access_key"

}

variable "secret_key" {
  description = "secret_key"
}

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第4张图片

(5) 密钥配置文件

terraform.tfvars

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第5张图片

(6)初始化

terraform init

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第6张图片

(7)格式化代码

terraform fmt

(8)验证代码

terraform validate

(9)计划与预览

 terraform plan

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第7张图片

(10)申请资源

terraform apply

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第8张图片

(11)展示资源

terraform show

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第9张图片

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

VPC已新增1个 (cn-hangzhou)

VPC已新增1个 (cn-nanjing)

(18)销毁资源

terraform destroy

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第10张图片

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

(1)查看项目

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第11张图片

(2) moudule模块配置文件 

主配置文件main.tf

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

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第12张图片

版本配置文件versions.tf

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

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第13张图片

变量配置文件variables.tf

variable "vpc_name" {
  
}

variable "vpc_cidr_block" {
  
}

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第14张图片

(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  
  }
}

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第15张图片(4) 版本配置文件

versions.tf

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

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第16张图片

(5)变量配置文件

variables.tf

variable "access_key" {
  description = "access_key"

}

variable "secret_key" {
  description = "secret_key"
}

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第17张图片

(6) 密钥配置文件

terraform.tfvars

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第18张图片

(7)初始化

terraform init

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第19张图片

(8)格式化代码

terraform fmt

(9)验证代码

terraform validate

(10)计划与预览

 terraform plan

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第20张图片

(11)申请资源

terraform apply

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第21张图片

(12)展示资源

terraform show

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第22张图片

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

VPC已新增1个 (cn-nanjing)

(14) 销毁资源

terraform destroy

IaC基础设施即代码:Terraform 使用 provider 自定义提供者_第23张图片

你可能感兴趣的:(IaC基础设施即代码,terraform,云原生,云计算,运维,阿里云)