NYHETER   |   28 februari 2021
Cloudist sessions episod 4

I det här avsnittet av Cloudist Sessions visar vi möjligheterna att bygga infrastruktur genom kod med Terraform och Cloudist VDC.

Skapa och förstör med Terraform

I det här avsnittet av Cloudist Sessions visar vi möjligheterna att bygga infrastruktur genom kod med Terraform och Cloudist VDC.

Länkar till dokumentation:

 

vApp.tf

# Configure the VMware vCloud Director Provider
provider ”vcd” {
url = var.vcd_url
org = var.vcd_org
vdc = var.vcd_vdc
user = var.vcd_user
password = var.vcd_pass
}

 

# This resource will destroy (potentially immediately) after null_resource.next
resource ”null_resource” ”previous” {}

 

resource ”time_sleep” ”wait” {
depends_on = [null_resource.previous]
create_duration = ”150s”
}

 

### NETWORKING ###

 

# Edge GW Configuration
data ”vcd_edgegateway” ”Test001-esg01” {
org = var.vcd_org
vdc = var.vcd_vdc
name = ”Test001-esg01”
}

 

# Create routed org-network
resource ”vcd_network_routed” ”MyAppNet” {

 

name = ”MyAppNet”
edge_gateway = ”Test001-esg01”
gateway = ”10.1.0.1”

 

dhcp_pool {
start_address = ”10.1.0.15”
end_address = ”10.1.0.20”
}
}

 

### vApp and VMs ###
# vApp Name and Metadata
resource ”vcd_vapp” ”MyApp” {
name = ”MyApp”

 

metadata = {
TestCycle = ”123-A”
}
}

 

# vApp network connected to routed org-network
resource ”vcd_vapp_org_network” ”MyAppNet” {
vapp_name = ”MyApp”
org_network_name = vcd_network_routed.MyAppNet.name
}

 

# vApp VM 1
resource ”vcd_vapp_vm” ”WebServer” {
vapp_name = vcd_vapp.MyApp.name
name = ”WebServer”

 

catalog_name = ”DeployCatalog”
template_name = ”WebServer”

 

memory = 8192
cpus = 2

 

network {
type = ”org”
name = vcd_network_routed.MyAppNet.name
ip_allocation_mode = ”DHCP”
}
}

 

# This resource will create (at least) 500 seconds after null_resource.previous
resource ”null_resource” ”next” {
depends_on = [time_sleep.wait]
}

 

# Create FW access rule
resource ”vcd_nsxv_firewall_rule” ”MyApp-HTTP” {
depends_on = [time_sleep.wait]
org = var.vcd_org
vdc = var.vcd_vdc
edge_gateway = ”Test001-esg01”

 

name = ”MyApp-HTTP”

 

source {
ip_addresses = [”any”]
}

 

destination {
#ip_addresses = [”${vcd_vapp_vm.WebServer.network.0.ip}”]
ip_addresses = [”${data.vcd_edgegateway.Test001-esg01.default_external_network_ip}”]
}

 

service {
protocol = ”tcp”
port = ”80”
}
}

 

# Create FW DNAT rule
# Port forward TCP/80 to WebServer
resource ”vcd_nsxv_dnat” ”MyApp-HTTP” {
depends_on = [time_sleep.wait]
org = var.vcd_org
vdc = var.vcd_vdc
edge_gateway = ”Test001-esg01”

 

network_type = ”ext”
network_name = ”SEC1-PUBLIC-NET3”

 

protocol = ”tcp”

 

original_address = data.vcd_edgegateway.Test001-esg01.default_external_network_ip
original_port = ”80”
translated_address = vcd_vapp_vm.WebServer.network.0.ip
translated_port = ”80”
}

terraform.tfvars

vcd_user = ”user”
vcd_pass = ”password”
vcd_org = ”organization-ID”
vcd_vdc = ”vdc-ID”
vcd_url = ”https://sec1-vdc.cloudist.solutions/api”
vcd_host = ”https://sec1-vdc.cloudist.solutions/api”
vcd_allow_unverified_ssl = ”true”

 

Produkter i demon: VMware Cloud Director, Hashicorp Terraform

 

#cloudhappens #vmwarecloudproviders

 

För att se alla våra videor, se vår Youtube channel och prenumerera för att ta del av de senaste uppdateringarna.

Cloudist

Easy does it

Fortlax AB (Cloudist)
Orgnr: 556668-1044
Adress: Box 80
941 22, Piteå
Newsletter signup