Skip to content

Instantly share code, notes, and snippets.

@cmbits
Created September 4, 2020 20:58
Show Gist options
  • Save cmbits/ae9ba8ef31032bc85597a6e5a3485d23 to your computer and use it in GitHub Desktop.
Save cmbits/ae9ba8ef31032bc85597a6e5a3485d23 to your computer and use it in GitHub Desktop.
Packer buildfile for Windows template creation in vSphere content library
{
"builders": [
{
"CPUs": "{{user `vm-cpu-num`}}",
"RAM": "{{user `vm-mem-size`}}",
"RAM_reserve_all": "false",
"boot_command": [
"<tab><wait><tab>"
],
"boot_wait": "-1s",
"cluster": "{{user `vsphere-cluster`}}",
"communicator": "winrm",
"convert_to_template": "false",
"datacenter": "{{user `vsphere-datacenter`}}",
"datastore": "{{user `vsphere-datastore`}}",
"disk_controller_type": "lsilogic-sas",
"firmware": "efi",
"cdrom_type": "sata",
"floppy_files": [
"2016/gui/autounattend.xml",
"scripts/disable-network-discovery.cmd",
"scripts/disable-winrm.ps1",
"scripts/enable-winrm.ps1",
"scripts/install-vcredist.ps1",
"scripts/install-vmtools.ps1",
"scripts/save_shutdown_command.ps1",
"scripts/vmxnet3/vmxnet3.cat",
"scripts/vmxnet3/vmxnet3.inf",
"scripts/vmxnet3/vmxnet3.sys",
"scripts/vmxnet3/vmxnet3ver.dll"
],
"folder": "{{user `vsphere-folder`}}",
"content_library_destination" : {
"library": "Public",
"ovf": "true",
"name": "2016GUICloudInit-OVF",
"destroy": "true"
},
"guest_os_type": "windows9Server64Guest",
"insecure_connection": "true",
"iso_paths": [
"{{user `os-iso-path-win2016`}}"
],
"name": "2016GUICloudInit",
"network_adapters": [
{
"network": "{{user `vsphere-network`}}",
"network_card": "vmxnet3"
}
],
"notes": "Built via Packer",
"password": "{{user `vsphere-password`}}",
"remove_cdrom": "false",
"shutdown_command": "C:/Windows/packer/PackerShutdown.bat",
"shutdown_timeout": "2h",
"storage": [
{
"disk_size": "{{user `vm-disk-size`}}",
"disk_thin_provisioned": true
}
],
"type": "vsphere-iso",
"username": "{{user `vsphere-user`}}",
"vcenter_server": "{{user `vsphere-server`}}",
"vm_name": "Template-Win2016-GUI-CloudInit-OVF",
"vm_version": "{{user `vm-version`}}",
"winrm_password": "{{user `winadmin-password`}}",
"winrm_username": "Administrator"
},
{
"CPUs": "{{user `vm-cpu-num`}}",
"RAM": "{{user `vm-mem-size`}}",
"RAM_reserve_all": "false",
"boot_command": [
"<tab><wait><tab>"
],
"boot_wait": "-1s",
"cluster": "{{user `vsphere-cluster`}}",
"communicator": "winrm",
"convert_to_template": "false",
"datacenter": "{{user `vsphere-datacenter`}}",
"datastore": "{{user `vsphere-datastore`}}",
"disk_controller_type": "lsilogic-sas",
"firmware": "efi",
"cdrom_type": "sata",
"floppy_files": [
"2016/core/autounattend.xml",
"scripts/disable-network-discovery.cmd",
"scripts/disable-winrm.ps1",
"scripts/enable-winrm.ps1",
"scripts/install-vcredist.ps1",
"scripts/install-vmtools.ps1",
"scripts/save_shutdown_command.ps1",
"scripts/vmxnet3/vmxnet3.cat",
"scripts/vmxnet3/vmxnet3.inf",
"scripts/vmxnet3/vmxnet3.sys",
"scripts/vmxnet3/vmxnet3ver.dll"
],
"folder": "{{user `vsphere-folder`}}",
"content_library_destination" : {
"library": "Public",
"ovf": "true",
"name": "2016CoreCloudInit-OVF",
"destroy": "true"
},
"guest_os_type": "windows9Server64Guest",
"insecure_connection": "true",
"iso_paths": [
"{{user `os-iso-path-win2016`}}"
],
"name": "2016CoreCloudInit",
"network_adapters": [
{
"network": "{{user `vsphere-network`}}",
"network_card": "vmxnet3"
}
],
"notes": "Built via Packer",
"password": "{{user `vsphere-password`}}",
"remove_cdrom": "false",
"shutdown_command": "C:/Windows/packer/PackerShutdown.bat",
"shutdown_timeout": "2h",
"storage": [
{
"disk_size": "{{user `vm-disk-size`}}",
"disk_thin_provisioned": true
}
],
"type": "vsphere-iso",
"username": "{{user `vsphere-user`}}",
"vcenter_server": "{{user `vsphere-server`}}",
"vm_name": "Template-Win2016-Core-CloudInit-OVF",
"vm_version": "{{user `vm-version`}}",
"winrm_password": "{{user `winadmin-password`}}",
"winrm_username": "Administrator"
},
{
"CPUs": "{{user `vm-cpu-num`}}",
"RAM": "{{user `vm-mem-size`}}",
"RAM_reserve_all": "false",
"boot_command": [
"<tab><wait><tab>"
],
"boot_wait": "-1s",
"cluster": "{{user `vsphere-cluster`}}",
"communicator": "winrm",
"convert_to_template": "false",
"datacenter": "{{user `vsphere-datacenter`}}",
"datastore": "{{user `vsphere-datastore`}}",
"disk_controller_type": "lsilogic-sas",
"firmware": "efi",
"cdrom_type": "sata",
"floppy_files": [
"2019/gui/autounattend.xml",
"scripts/disable-network-discovery.cmd",
"scripts/disable-winrm.ps1",
"scripts/enable-winrm.ps1",
"scripts/install-vmtools.ps1",
"scripts/save_shutdown_command.ps1",
"scripts/vmxnet3/vmxnet3.cat",
"scripts/vmxnet3/vmxnet3.inf",
"scripts/vmxnet3/vmxnet3.sys",
"scripts/vmxnet3/vmxnet3ver.dll"
],
"folder": "{{user `vsphere-folder`}}",
"content_library_destination" : {
"library": "Public",
"ovf": "true",
"name": "2019GUICloudInit-OVF",
"destroy": "true"
},
"guest_os_type": "windows2019srv_64Guest",
"insecure_connection": "true",
"iso_paths": [
"{{user `os-iso-path-win2019`}}"
],
"name": "2019GUICloudInit",
"network_adapters": [
{
"network": "{{user `vsphere-network`}}",
"network_card": "vmxnet3"
}
],
"notes": "Built via Packer",
"password": "{{user `vsphere-password`}}",
"remove_cdrom": "false",
"shutdown_command": "C:/Windows/packer/PackerShutdown.bat",
"shutdown_timeout": "2h",
"storage": [
{
"disk_size": "{{user `vm-disk-size`}}",
"disk_thin_provisioned": true
}
],
"type": "vsphere-iso",
"username": "{{user `vsphere-user`}}",
"vcenter_server": "{{user `vsphere-server`}}",
"vm_name": "Template-Win2019-GUI-CloudInit-OVF",
"vm_version": "{{user `vm-version`}}",
"winrm_password": "{{user `winadmin-password`}}",
"winrm_username": "Administrator"
},
{
"CPUs": "{{user `vm-cpu-num`}}",
"RAM": "{{user `vm-mem-size`}}",
"RAM_reserve_all": "false",
"boot_command": [
"<tab><wait><tab>"
],
"boot_wait": "-1s",
"cluster": "{{user `vsphere-cluster`}}",
"communicator": "winrm",
"convert_to_template": "false",
"datacenter": "{{user `vsphere-datacenter`}}",
"datastore": "{{user `vsphere-datastore`}}",
"disk_controller_type": "lsilogic-sas",
"firmware": "efi",
"cdrom_type": "sata",
"floppy_files": [
"2019/core/autounattend.xml",
"scripts/disable-network-discovery.cmd",
"scripts/disable-winrm.ps1",
"scripts/enable-winrm.ps1",
"scripts/install-vmtools.ps1",
"scripts/save_shutdown_command.ps1",
"scripts/vmxnet3/vmxnet3.cat",
"scripts/vmxnet3/vmxnet3.inf",
"scripts/vmxnet3/vmxnet3.sys",
"scripts/vmxnet3/vmxnet3ver.dll"
],
"folder": "{{user `vsphere-folder`}}",
"content_library_destination" : {
"library": "Public",
"ovf": "true",
"name": "2019CoreCloudInit-OVF",
"destroy": "true"
},
"guest_os_type": "windows2019srv_64Guest",
"insecure_connection": "true",
"iso_paths": [
"{{user `os-iso-path-win2019`}}"
],
"name": "2019CoreCloudInit",
"network_adapters": [
{
"network": "{{user `vsphere-network`}}",
"network_card": "vmxnet3"
}
],
"notes": "Built via Packer",
"password": "{{user `vsphere-password`}}",
"remove_cdrom": "false",
"shutdown_command": "C:/Windows/packer/PackerShutdown.bat",
"shutdown_timeout": "2h",
"storage": [
{
"disk_size": "{{user `vm-disk-size`}}",
"disk_thin_provisioned": true
}
],
"type": "vsphere-iso",
"username": "{{user `vsphere-user`}}",
"vcenter_server": "{{user `vsphere-server`}}",
"vm_name": "Template-Win2019-Core-CloudInit-OVF",
"vm_version": "{{user `vm-version`}}",
"winrm_password": "{{user `winadmin-password`}}",
"winrm_username": "Administrator"
}
],
"provisioners": [
{
"inline": [
"ipconfig"
],
"type": "windows-shell"
},
{
"script": "scripts/install-cloudinit.ps1",
"type": "powershell"
},
{
"script": "scripts/version-template.ps1",
"type": "powershell"
},
{
"type": "windows-update"
},
{
"script": "scripts/save_shutdown_command.ps1",
"type": "powershell"
}
],
"sensitive-variables": [
"vsphere-password",
"winadmin-password"
],
"variables": {
"os-iso-path-win2016": "[vsanDatastore] ISOs/SW_DVD9_Win_Svr_STD_Core_and_DataCtr_Core_2016_64Bit_English_-3_MLF_X21-30350.ISO",
"os-iso-path-win2019": "[vsanDatastore] ISOs/SW_DVD9_Win_Server_STD_CORE_2019_1809.2_64Bit_English_DC_STD_MLF_X22-18452.ISO",
"os_iso_path": "[vsanDatastore] ISOs/",
"tools-iso-path-11": "[vsanDatastore] ISOs/Tools/vmware-tools-windows-11.0.6-15940789.iso",
"vm-cpu-num": "2",
"vm-disk-size": "81920",
"vm-mem-size": "8192",
"vm-name": "Windows-packer",
"vm-version": "17",
"vsphere-cluster": "Cluster",
"vsphere-datacenter": "Datacenter",
"vsphere-datastore": "vsanDatastore",
"vsphere-folder": "Templates",
"vsphere-network": "",
"vsphere-password": "",
"vsphere-server": "",
"vsphere-user": "",
"winadmin-password": ""
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment