From 2f4035afa79ffe3d0f84c15faaa3d895e2086a14 Mon Sep 17 00:00:00 2001 From: djpbessems Date: Thu, 4 Feb 2021 09:32:03 +0100 Subject: [PATCH] Deploy OVA w/ default configuration --- .drone.yml | 4 ++- terraform/DC01.tf | 53 +++++++++++++++++++++++++++++++++++ terraform/{vm.tf => SRV01.tf} | 16 +++++++---- terraform/variables.tf | 4 ++- terraform/vsphere.tfvars | 2 +- 5 files changed, 70 insertions(+), 9 deletions(-) create mode 100644 terraform/DC01.tf rename terraform/{vm.tf => SRV01.tf} (75%) diff --git a/.drone.yml b/.drone.yml index da77183..df2ac3b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -19,7 +19,7 @@ steps: commands: - | terraform -chdir=terraform plan \ - -var="vsphere_password=$${VSPHERE_PASSWORD}" -var="repo_username=$${REPO_USERNAME}" -var="repo_password=$${REPO_PASSWORD}" \ + -var="vsphere_password=$${VSPHERE_PASSWORD}" -var="repo_username=$${REPO_USERNAME}" -var="repo_password=$${REPO_PASSWORD}" -var="adds_password=$${ADDS_PASSWORD}"\ -var-file='vsphere.tfvars' \ -input=false \ -out=terraform.plan @@ -31,6 +31,8 @@ steps: from_secret: repo_username REPO_PASSWORD: from_secret: repo_password + ADDS_PASSWORD: + from_secret: adds_password # TF_LOG: TRACE - name: Terraform Apply image: bv11-cr01.bessems.eu/library/packer-extended diff --git a/terraform/DC01.tf b/terraform/DC01.tf new file mode 100644 index 0000000..55ef4f2 --- /dev/null +++ b/terraform/DC01.tf @@ -0,0 +1,53 @@ +resource "vsphere_virtual_machine" "TF-DC01" { + name = "TF-DC01" + resource_pool_id = data.vsphere_resource_pool.pool.id + datastore_id = data.vsphere_datastore.vmdatastore.id + folder = var.vsphere_vmfolder + + num_cpus = 2 + memory = 4096 + + network_interface { + network_id = data.vsphere_network.network.id + } + + disk { + label = "disk0" + unit_number = 0 + size = 40 + thin_provisioned = true + } + + vapp { + properties = { + # "deployment.type" = "primary" + + "guestinfo.hostname" = "TF-DC01" + "guestinfo.ipaddress" = "10.0.0.21" + "guestinfo.prefixlength" = "24" + # "guestinfo.dnsserver" = "0.0.0.0" + "guestinfo.gateway" = "10.0.0.1" + + "addsconfig.domainname" = "srv.io" + "addsconfig.netbiosname" = "SRV" + "addsconfig.administratorpw" = var.adds_password + "addsconfig.safemodepw" = var.adds_password + "addsconfig.ntpserver" = "0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org" + + # "dhcpconfig.startip" = "10.0.0.50" + # "dhcpconfig.endip" = "10.0.0.250" + # "dhcpconfig.subnetmask" = "255.255.255.0" + # "dhcpconfig.gateway" = "10.0.0.1" + # "dhcpconfig.leaseduration" = "01:00:00.00" + } + } + + clone { + template_uuid = vsphere_content_library_item.ADDS.id + } + + # # This does not actually achieve protection from destruction, see https://github.com/hashicorp/terraform/issues/17599 + # lifecycle { + # prevent_destroy = true + # } +} \ No newline at end of file diff --git a/terraform/vm.tf b/terraform/SRV01.tf similarity index 75% rename from terraform/vm.tf rename to terraform/SRV01.tf index 58c2b24..89d1f23 100644 --- a/terraform/vm.tf +++ b/terraform/SRV01.tf @@ -29,16 +29,16 @@ resource "vsphere_virtual_machine" "TF-SRV01" { # "deployment.type" = "standalone" "guestinfo.hostname" = "TF-SRV01" - "guestinfo.administratorpw" = "Secret123!" - "guestinfo.ntpserver" = "0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org" + # "guestinfo.administratorpw" = "Secret123!" + # "guestinfo.ntpserver" = "0.pool.ntp.org,1.pool.ntp.org,2.pool.ntp.org" "guestinfo.ipaddress" = "10.0.0.42" "guestinfo.prefixlength" = "24" - "guestinfo.dnsserver" = "10.0.0.5" + "guestinfo.dnsserver" = "10.0.0.21" "guestinfo.gateway" = "10.0.0.1" - "addsconfig.domainname" = "" - "addsconfig.username" = "" - "addsconfig.password" = "" + "addsconfig.domainname" = "srv.io" + "addsconfig.username" = "SRV\\Administrator" + "addsconfig.password" = var.adds_password } } @@ -46,6 +46,10 @@ resource "vsphere_virtual_machine" "TF-SRV01" { template_uuid = vsphere_content_library_item.Server2019.id } + depends_on = [ + vsphere_virtual_machine.TF-DC01 + ] + # # This does not actually achieve protection from destruction, see https://github.com/hashicorp/terraform/issues/17599 # lifecycle { # prevent_destroy = true diff --git a/terraform/variables.tf b/terraform/variables.tf index fca5972..db5d2f4 100644 --- a/terraform/variables.tf +++ b/terraform/variables.tf @@ -12,4 +12,6 @@ variable "vsphere_vmfolder" {} variable "vsphere_network" {} variable "repo_username" {} -variable "repo_password" {} \ No newline at end of file +variable "repo_password" {} + +variable "adds_password" {} \ No newline at end of file diff --git a/terraform/vsphere.tfvars b/terraform/vsphere.tfvars index 8304e75..8430386 100644 --- a/terraform/vsphere.tfvars +++ b/terraform/vsphere.tfvars @@ -6,4 +6,4 @@ vsphere_hostip = "192.168.11.200" vsphere_vmdatastore = "Datastore02.SSD" vsphere_cldatastore = "Datastore01.NAS" vsphere_vmfolder = "/Terraform" -vsphere_network = "LAN" +vsphere_network = "Isolated"