diff --git a/experiments/swdt/packer/Makefile b/experiments/swdt/packer/Makefile new file mode 100644 index 0000000..7a03632 --- /dev/null +++ b/experiments/swdt/packer/Makefile @@ -0,0 +1,3 @@ +start: + packer init kvm + PACKER_LOG=1 packer build kvm diff --git a/experiments/swdt/packer/kvm/autounattend.xml b/experiments/swdt/packer/kvm/autounattend.xml new file mode 100644 index 0000000..3e0a75d --- /dev/null +++ b/experiments/swdt/packer/kvm/autounattend.xml @@ -0,0 +1,237 @@ + + + + + + + a:\ + + + E:\STORAGE\SERVER_2008\AMD64 + + + E:\NETWORK\SERVER_2008\AMD64 + + + + + + + 0 + true + + + 1 + 350 + Primary + + + 2 + true + Primary + + + + + NTFS + + 1 + 1 + 0x27 + + + 2 + 2 + C + + NTFS + + + + + + + + 0 + 2 + + + + /IMAGE/NAME + Windows Server 2022 SERVERSTANDARDCORE + + + + + + true + Administrator + Organization + + + OnError + + + true + + + + en-US + + 0409:00000409 + en-US + en-US + en-US + en-US + + + + + false + + + + + 1 + + + + + 0409:00000409 + en-US + en-US + en-US + en-US + + + true + + + 0 + + + + VDYBN-27WPP-V4HQT-9VMD4-VMK7H + + + + + + + S3cr3t0! + true</PlainText> + </Password> + <Enabled>true</Enabled> + <Username>Administrator</Username> + </AutoLogon> + <FirstLogonCommands> + <SynchronousCommand wcm:action="add"> + <Order>1</Order> + <Description>Set Execution Policy 64 Bit</Description> + <CommandLine>cmd.exe /c powershell -Command "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force"</CommandLine> + <RequiresUserInput>true</RequiresUserInput> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <Order>2</Order> + <Description>Set Execution Policy 32 Bit</Description> + <CommandLine>%SystemDrive%\Windows\SysWOW64\cmd.exe /c powershell -Command "Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force"</CommandLine> + <RequiresUserInput>true</RequiresUserInput> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>%SystemRoot%\System32\reg.exe ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ /v HideFileExt /t REG_DWORD /d 0 /f</CommandLine> + <Order>3</Order> + <Description>Show file extensions in Explorer</Description> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>%SystemRoot%\System32\reg.exe ADD HKCU\Console /v QuickEdit /t REG_DWORD /d 1 /f</CommandLine> + <Order>4</Order> + <Description>Enable QuickEdit mode</Description> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>%SystemRoot%\System32\reg.exe ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ /v Start_ShowRun /t REG_DWORD /d 1 /f</CommandLine> + <Order>5</Order> + <Description>Show Run command in Start Menu</Description> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>%SystemRoot%\System32\reg.exe ADD HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\ /v StartMenuAdminTools /t REG_DWORD /d 1 /f</CommandLine> + <Order>6</Order> + <Description>Show Administrative Tools in Start Menu</Description> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>%SystemRoot%\System32\reg.exe ADD HKLM\SYSTEM\CurrentControlSet\Control\Power\ /v HibernateFileSizePercent /t REG_DWORD /d 0 /f</CommandLine> + <Order>7</Order> + <Description>Zero Hibernation File</Description> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>%SystemRoot%\System32\reg.exe ADD HKLM\SYSTEM\CurrentControlSet\Control\Power\ /v HibernateEnabled /t REG_DWORD /d 0 /f</CommandLine> + <Order>8</Order> + <Description>Disable Hibernation Mode</Description> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>cmd.exe /c wmic useraccount where "name='Administrator'" set PasswordExpires=FALSE</CommandLine> + <Order>9</Order> + <Description>Disable password expiration for Administrator user</Description> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>cmd.exe /c %SystemDrive%\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -File a:\enable-winrm.ps1</CommandLine> + <Description>Enable WinRM</Description> + <Order>10</Order> + </SynchronousCommand> + <SynchronousCommand wcm:action="add"> + <CommandLine>cmd.exe /c a:\disable-network-discovery.cmd</CommandLine> + <Description>Disable Network Discovery</Description> + <Order>11</Order> + </SynchronousCommand> + </FirstLogonCommands> + <OOBE> + <HideEULAPage>true</HideEULAPage> + <HideLocalAccountScreen>true</HideLocalAccountScreen> + <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> + <HideOnlineAccountScreens>true</HideOnlineAccountScreens> + <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> + <NetworkLocation>Work</NetworkLocation> + <ProtectYourPC>1</ProtectYourPC> + <SkipMachineOOBE>true</SkipMachineOOBE> + <SkipUserOOBE>true</SkipUserOOBE> + </OOBE> + <RegisteredOrganization>Organization</RegisteredOrganization> + <RegisteredOwner>Owner</RegisteredOwner> + <DisableAutoDaylightTimeSet>false</DisableAutoDaylightTimeSet> + <TimeZone>Pacific Standard Time</TimeZone> + <UserAccounts> + <AdministratorPassword> + <Value>S3cr3t0!</Value> + <PlainText>true</PlainText> + </AdministratorPassword> + <LocalAccounts> + <LocalAccount wcm:action="add"> + <Description>Administrator</Description> + <DisplayName>Administrator</DisplayName> + <Group>Administrators</Group> + <Name>Administrator</Name> + </LocalAccount> + </LocalAccounts> + </UserAccounts> + </component> + </settings> +</unattend> diff --git a/experiments/swdt/packer/kvm/win2022.pkr.hcl b/experiments/swdt/packer/kvm/win2022.pkr.hcl new file mode 100644 index 0000000..c0c9d54 --- /dev/null +++ b/experiments/swdt/packer/kvm/win2022.pkr.hcl @@ -0,0 +1,42 @@ +packer { + required_plugins { + qemu = { + version = "~> 1" + source = "github.com/hashicorp/qemu" + } + } +} + +source "qemu" "windows" { + vm_name = "win2k22" + format = "qcow2" + accelerator = "kvm" + + iso_url = "windows.iso" + iso_checksum = "sha256:3e4fa6d8507b554856fc9ca6079cc402df11a8b79344871669f0251535255325" + + cpus = 4 + memory = 4096 + + efi_boot = false + disk_size = "15G" + disk_interface = "virtio" + + floppy_files = ["kvm/autounattend.xml"] + qemuargs = [["-cdrom", "./kvm/virtio-win.iso"]] + + output_directory = "output" + ssh_username = "root" + ssh_password = "s0m3password" + ssh_timeout = "20m" + + boot_wait = "10s" + shutdown_command = "shutdown /s /t 30 /f" + shutdown_timeout = "15m" +} + +build { + name = "win2022" + sources = ["source.qemu.windows"] +} +