Last active
October 28, 2021 16:59
-
-
Save nma/62ad47dec38fb9987366fd69a01da252 to your computer and use it in GitHub Desktop.
Vsphere Terraform VApp Example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
terraform { | |
required_providers { | |
vsphere = { | |
source = "hashicorp/vsphere" | |
version = "1.11" | |
} | |
} | |
} | |
provider "vsphere" { | |
user = "username" | |
password = "password" | |
vsphere_server = "localhost:8989" | |
allow_unverified_ssl = true | |
} | |
data "vsphere_datacenter" "dc" { | |
name = "DC0" | |
} | |
data "vsphere_datastore" "datastore" { | |
name = "datastore/LocalDS_0" | |
datacenter_id = data.vsphere_datacenter.dc.id | |
} | |
data "vsphere_resource_pool" "pool" { | |
name = "DC0_H0/Resources" | |
datacenter_id = data.vsphere_datacenter.dc.id | |
} | |
data "vsphere_network" "network" { | |
name = "network/VM Network" | |
datacenter_id = data.vsphere_datacenter.dc.id | |
} | |
data "vsphere_virtual_machine" "template" { | |
name = "DC0_H0_VM0" | |
datacenter_id = data.vsphere_datacenter.dc.id | |
} | |
data "template_file" "user_data" { | |
template = <<EOF | |
#cloud-config | |
disable_root: false | |
ntp: | |
enabled: true | |
servers: ["ntp.ubuntu.com"] | |
ntp_client: systemd-timesyncd | |
EOF | |
} | |
resource "vsphere_virtual_machine" "vm" { | |
name = "terraform-test" | |
resource_pool_id = data.vsphere_resource_pool.pool.id | |
datastore_id = data.vsphere_datastore.datastore.id | |
num_cpus = 2 | |
memory = 4096 | |
guest_id = data.vsphere_virtual_machine.template.guest_id | |
network_interface { | |
network_id = data.vsphere_network.network.id | |
adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0] | |
} | |
disk { | |
label = "disk0" | |
size = 50 | |
} | |
clone { | |
template_uuid = data.vsphere_virtual_machine.template.id | |
} | |
/*vapp { | |
properties = { | |
hostname = "test" | |
public-keys = file("mock.pub") | |
user-data = base64encode(data.template_file.user_data.rendered) | |
} | |
}*/ | |
scsi_type = data.vsphere_virtual_machine.template.scsi_type | |
wait_for_guest_net_timeout = "-1" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
-----BEGIN PUBLIC KEY----- | |
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3Yyk6AyXlwv/LpH10aQYtBgbV | |
9Ll1t8yBZD+fFRBqiz/zAFECvuOv9cSc0QgNoSgfH5Tly51bMthMsDW/T7S95zCh | |
BkKQyVxE2TVeJv+RNUBv0RFFCcmZbFDjNb0IPn4rJvkPFE874Y7PZOF5DID5Wp+s | |
sXUm8BNztAQp0Vj35QIDAQAB | |
-----END PUBLIC KEY----- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"ChangeVersion": "", | |
"Modified": "2021-10-28T16:30:38.461575341Z", | |
"Name": "DC0_H0_VM0", | |
"GuestFullName": "otherGuest", | |
"Version": "vmx-13", | |
"Uuid": "265104de-1472-547c-b873-6dc7883fb6cb", | |
"CreateDate": "2021-10-28T16:30:38.460894008Z", | |
"InstanceUuid": "b4689bed-97f0-5bcd-8a4c-07477cc8f06f", | |
"NpivNodeWorldWideName": null, | |
"NpivPortWorldWideName": null, | |
"NpivWorldWideNameType": "", | |
"NpivDesiredNodeWwns": 0, | |
"NpivDesiredPortWwns": 0, | |
"NpivTemporaryDisabled": null, | |
"NpivOnNonRdmDisks": null, | |
"LocationId": "", | |
"Template": false, | |
"GuestId": "otherGuest", | |
"AlternateGuestName": "", | |
"Annotation": "", | |
"Files": { | |
"VmPathName": "[LocalDS_0] DC0_H0_VM0/DC0_H0_VM0.vmx", | |
"SnapshotDirectory": "[LocalDS_0] DC0_H0_VM0", | |
"SuspendDirectory": "[LocalDS_0] DC0_H0_VM0", | |
"LogDirectory": "[LocalDS_0] DC0_H0_VM0", | |
"FtMetadataDirectory": "" | |
}, | |
"Tools": { | |
"ToolsVersion": 0, | |
"ToolsInstallType": "", | |
"AfterPowerOn": null, | |
"AfterResume": null, | |
"BeforeGuestStandby": null, | |
"BeforeGuestShutdown": null, | |
"BeforeGuestReboot": null, | |
"ToolsUpgradePolicy": "", | |
"PendingCustomization": "", | |
"CustomizationKeyId": null, | |
"SyncTimeWithHost": null, | |
"LastInstallInfo": null | |
}, | |
"Flags": { | |
"DisableAcceleration": null, | |
"EnableLogging": null, | |
"UseToe": null, | |
"RunWithDebugInfo": null, | |
"MonitorType": "", | |
"HtSharing": "", | |
"SnapshotDisabled": null, | |
"SnapshotLocked": null, | |
"DiskUuidEnabled": null, | |
"VirtualMmuUsage": "", | |
"VirtualExecUsage": "", | |
"SnapshotPowerOffBehavior": "", | |
"RecordReplayEnabled": null, | |
"FaultToleranceType": "", | |
"CbrcCacheEnabled": null, | |
"VvtdEnabled": null, | |
"VbsEnabled": null | |
}, | |
"ConsolePreferences": null, | |
"DefaultPowerOps": { | |
"PowerOffType": "", | |
"SuspendType": "", | |
"ResetType": "", | |
"DefaultPowerOffType": "", | |
"DefaultSuspendType": "", | |
"DefaultResetType": "", | |
"StandbyAction": "" | |
}, | |
"Hardware": { | |
"NumCPU": 1, | |
"NumCoresPerSocket": 1, | |
"MemoryMB": 32, | |
"VirtualICH7MPresent": null, | |
"VirtualSMCPresent": null, | |
"Device": [ | |
{ | |
"Key": 200, | |
"DeviceInfo": { | |
"Label": "IDE 0", | |
"Summary": "IDE 0" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 0, | |
"UnitNumber": null, | |
"BusNumber": 0, | |
"Device": null | |
}, | |
{ | |
"Key": 201, | |
"DeviceInfo": { | |
"Label": "IDE 1", | |
"Summary": "IDE 1" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 0, | |
"UnitNumber": null, | |
"BusNumber": 1, | |
"Device": null | |
}, | |
{ | |
"Key": 300, | |
"DeviceInfo": { | |
"Label": "PS2 controller 0", | |
"Summary": "PS2 controller 0" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 0, | |
"UnitNumber": null, | |
"BusNumber": 0, | |
"Device": [ | |
600, | |
700 | |
] | |
}, | |
{ | |
"Key": 100, | |
"DeviceInfo": { | |
"Label": "PCI controller 0", | |
"Summary": "PCI controller 0" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 0, | |
"UnitNumber": null, | |
"BusNumber": 0, | |
"Device": [ | |
500, | |
12000 | |
] | |
}, | |
{ | |
"Key": 400, | |
"DeviceInfo": { | |
"Label": "SIO controller 0", | |
"Summary": "SIO controller 0" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 0, | |
"UnitNumber": null, | |
"BusNumber": 0, | |
"Device": null | |
}, | |
{ | |
"Key": 600, | |
"DeviceInfo": { | |
"Label": "Keyboard ", | |
"Summary": "Keyboard" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 300, | |
"UnitNumber": 0 | |
}, | |
{ | |
"Key": 700, | |
"DeviceInfo": { | |
"Label": "Pointing device", | |
"Summary": "Pointing device; Device" | |
}, | |
"Backing": { | |
"DeviceName": "", | |
"UseAutoDetect": false, | |
"HostPointingDevice": "autodetect" | |
}, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 300, | |
"UnitNumber": 1 | |
}, | |
{ | |
"Key": 500, | |
"DeviceInfo": { | |
"Label": "Video card ", | |
"Summary": "Video card" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 100, | |
"UnitNumber": 0, | |
"VideoRamSizeInKB": 4096, | |
"NumDisplays": 1, | |
"UseAutoDetect": false, | |
"Enable3DSupport": false, | |
"Use3dRenderer": "automatic", | |
"GraphicsMemorySizeInKB": 262144 | |
}, | |
{ | |
"Key": 12000, | |
"DeviceInfo": { | |
"Label": "VMCI device", | |
"Summary": "Device on the virtual machine PCI bus that provides support for the virtual machine communication interface" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 100, | |
"UnitNumber": 17, | |
"Id": -1, | |
"AllowUnrestrictedCommunication": false, | |
"FilterEnable": true, | |
"FilterInfo": null | |
}, | |
{ | |
"Key": 202, | |
"DeviceInfo": { | |
"Label": "pvscsi-202", | |
"Summary": "pvscsi-202" | |
}, | |
"Backing": null, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 0, | |
"UnitNumber": null, | |
"BusNumber": 0, | |
"Device": null, | |
"HotAddRemove": null, | |
"SharedBus": "noSharing", | |
"ScsiCtlrUnitNumber": 7 | |
}, | |
{ | |
"Key": 1697971134, | |
"DeviceInfo": { | |
"Label": "cdrom-1697971134", | |
"Summary": "cdrom-1697971134" | |
}, | |
"Backing": { | |
"DeviceName": "cdrom--201-824639096096", | |
"UseAutoDetect": false | |
}, | |
"Connectable": { | |
"MigrateConnect": "", | |
"StartConnected": true, | |
"AllowGuestControl": true, | |
"Connected": true, | |
"Status": "" | |
}, | |
"SlotInfo": null, | |
"ControllerKey": 202, | |
"UnitNumber": 0 | |
}, | |
{ | |
"Key": 255511522, | |
"DeviceInfo": { | |
"Label": "disk-202-0", | |
"Summary": "10,485,760 KB" | |
}, | |
"Backing": { | |
"FileName": "[LocalDS_0] terraform-test/terraform-test.vmdk", | |
"Datastore": { | |
"Type": "Datastore", | |
"Value": "/tmp/govcsim-DC0-LocalDS_0-288111359@group-5" | |
}, | |
"BackingObjectId": "", | |
"DiskMode": "persistent", | |
"Split": false, | |
"WriteThrough": false, | |
"ThinProvisioned": true, | |
"EagerlyScrub": false, | |
"Uuid": "516a8674-a275-54e2-a91c-b181f6baf7ee", | |
"ContentId": "", | |
"ChangeId": "", | |
"Parent": null, | |
"DeltaDiskFormat": "", | |
"DigestEnabled": false, | |
"DeltaGrainSize": 0, | |
"DeltaDiskFormatVariant": "", | |
"Sharing": "", | |
"KeyId": null | |
}, | |
"Connectable": null, | |
"SlotInfo": null, | |
"ControllerKey": 202, | |
"UnitNumber": 0, | |
"CapacityInKB": 10485760, | |
"CapacityInBytes": 0, | |
"Shares": null, | |
"StorageIOAllocation": null, | |
"DiskObjectId": "", | |
"VFlashCacheConfigInfo": null, | |
"Iofilter": null, | |
"VDiskId": null, | |
"NativeUnmanagedLinkedClone": null | |
}, | |
{ | |
"Key": 4000, | |
"DeviceInfo": { | |
"Label": "ethernet-0", | |
"Summary": "DVSwitch: fea97929-4b2d-5972-b146-930c6d0b4014" | |
}, | |
"Backing": { | |
"Port": { | |
"SwitchUuid": "fea97929-4b2d-5972-b146-930c6d0b4014", | |
"PortgroupKey": "dvportgroup-13", | |
"PortKey": "", | |
"ConnectionCookie": 0 | |
} | |
}, | |
"Connectable": { | |
"MigrateConnect": "", | |
"StartConnected": true, | |
"AllowGuestControl": true, | |
"Connected": false, | |
"Status": "untried" | |
}, | |
"SlotInfo": { | |
"PciSlotNumber": 32 | |
}, | |
"ControllerKey": 100, | |
"UnitNumber": 7, | |
"AddressType": "generated", | |
"MacAddress": "00:0c:29:36:63:62", | |
"WakeOnLanEnabled": true, | |
"ResourceAllocation": null, | |
"ExternalId": "", | |
"UptCompatibilityEnabled": null | |
} | |
] | |
}, | |
"CpuAllocation": { | |
"Reservation": 0, | |
"ExpandableReservation": true, | |
"Limit": -1, | |
"Shares": { | |
"Shares": 0, | |
"Level": "normal" | |
}, | |
"OverheadLimit": null | |
}, | |
"MemoryAllocation": { | |
"Reservation": 0, | |
"ExpandableReservation": true, | |
"Limit": -1, | |
"Shares": { | |
"Shares": 0, | |
"Level": "normal" | |
}, | |
"OverheadLimit": null | |
}, | |
"LatencySensitivity": { | |
"Level": "normal", | |
"Sensitivity": 0 | |
}, | |
"MemoryHotAddEnabled": null, | |
"CpuHotAddEnabled": null, | |
"CpuHotRemoveEnabled": null, | |
"HotPlugMemoryLimit": 0, | |
"HotPlugMemoryIncrementSize": 0, | |
"CpuAffinity": null, | |
"MemoryAffinity": null, | |
"NetworkShaper": null, | |
"ExtraConfig": [ | |
{ | |
"Key": "govcsim", | |
"Value": "TRUE" | |
} | |
], | |
"CpuFeatureMask": null, | |
"DatastoreUrl": null, | |
"SwapPlacement": "", | |
"BootOptions": { | |
"BootDelay": 0, | |
"EnterBIOSSetup": null, | |
"EfiSecureBootEnabled": null, | |
"BootRetryEnabled": null, | |
"BootRetryDelay": 0, | |
"BootOrder": null, | |
"NetworkBootProtocol": "" | |
}, | |
"FtInfo": null, | |
"RepConfig": null, | |
"VAppConfig": null, | |
"VAssertsEnabled": null, | |
"ChangeTrackingEnabled": null, | |
"Firmware": "bios", | |
"MaxMksConnections": 0, | |
"GuestAutoLockEnabled": null, | |
"ManagedBy": null, | |
"MemoryReservationLockedToMax": null, | |
"InitialOverhead": null, | |
"NestedHVEnabled": null, | |
"VPMCEnabled": null, | |
"ScheduledHardwareUpgradeInfo": null, | |
"ForkConfigInfo": null, | |
"VFlashCacheReservation": 0, | |
"VmxConfigChecksum": null, | |
"MessageBusTunnelEnabled": null, | |
"VmStorageObjectId": "", | |
"SwapStorageObjectId": "", | |
"KeyId": null, | |
"GuestIntegrityInfo": null, | |
"MigrateEncryption": "" | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment