1
# modules/vpc
# main.tf
# var.tf
# Define required providers
terraform {
required_version = ">= 1.0.0"
required_providers {
nhncloud = {
source = "nhn-cloud/nhncloud"
version = "1.0.2"
}
}
}
#VPC 생성 리소스 블록
resource "nhncloud_networking_vpc_v2" "terraform_vpc" {
name = var.vpc_name
cidrv4 = var.vpc_cidr
}
resource "nhncloud_networking_vpcsubnet_v2" "subnets" {
for_each = var.subnets
name = "${each.key}"
vpc_id = nhncloud_networking_vpc_v2.terraform_vpc.id
cidr = each.value
}
# var.tf
variable vpc_name {
type =string
}
variable vpc_cidr {
type =string
}
variable subnets {
type =map(string)
}
# test 폴더
# main.tf
module vpc {
source = "../modules/vpc"
vpc_name = "module_vpc"
vpc_cidr = "192.168.0.0/16"
subnets = {
public = "192.168.1.0/24"
private ="192.168.2.0/24"
}
}
# provider.tf
# Define required providers
terraform {
required_version = ">= 1.0.0"
required_providers {
nhncloud = {
source = "nhn-cloud/nhncloud"
version = "1.0.2"
}
}
}
provider "nhncloud" {
user_name = var.nhncloud_info["user_name"]
tenant_id = var.nhncloud_info["tenant_id"]
password = var.passwd
auth_url = var.nhncloud_info["auth_url"]
region = var.region["kr2"]
}
# var.tf
variable nhncloud_info {
type =map(string)
default = {
user_name = "topasvga@naver.com"
tenant_id = "0cad32d7cf43"
password = "test"
auth_url = "https://api-identity-infrastructure.nhncloudservice.com/v2.0"
}
}
variable passwd {
type = string
default = "test"
sensitive =true
}
variable region {
type = map(string)
default = {
kr1 = "KR1"
kr2 = "KR2"
}
}