Created
September 20, 2024 23:57
-
-
Save johnsimcall/557d26d409074ff0c08f127c398e000c to your computer and use it in GitHub Desktop.
OpenShift Virtualization - Automating Windows Server 2022 template creation
This file contains hidden or 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
--- | |
apiVersion: v1 | |
kind: ConfigMap | |
metadata: | |
name: windows2k22-autounattend | |
data: | |
autounattend.xml: | | |
<?xml version="1.0" encoding="utf-8"?> | |
<unattend xmlns="urn:schemas-microsoft-com:unattend" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State"> | |
<servicing> | |
<package action="configure"> | |
<assemblyIdentity name="Microsoft-Windows-ServerDatacenterEvalEdition" version="10.0.20348.587" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="" /> | |
</package> | |
</servicing> | |
<settings pass="windowsPE"> | |
<component language="neutral" name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
<SetupUILanguage> | |
<UILanguage>en-US</UILanguage> | |
</SetupUILanguage> | |
<InputLocale>en-US</InputLocale> | |
<SystemLocale>en-US</SystemLocale> | |
<UILanguage>en-US</UILanguage> | |
<UILanguageFallback>en-US</UILanguageFallback> | |
<UserLocale>en-US</UserLocale> | |
</component> | |
<component language="neutral" name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
<DriverPaths> | |
<PathAndCredentials wcm:action="add" wcm:keyValue="1"> | |
<Path>E:\amd64\2k22\</Path> | |
</PathAndCredentials> | |
</DriverPaths> | |
</component> | |
<component language="neutral" name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | |
<DiskConfiguration> | |
<Disk wcm:action="add"> | |
<CreatePartitions> | |
<CreatePartition wcm:action="add"> | |
<Order>1</Order> | |
<Type>Primary</Type> | |
<Size>700</Size> | |
</CreatePartition> | |
<CreatePartition wcm:action="add"> | |
<Order>2</Order> | |
<Type>EFI</Type> | |
<Size>100</Size> | |
</CreatePartition> | |
<CreatePartition wcm:action="add"> | |
<Order>3</Order> | |
<Type>MSR</Type> | |
<Size>128</Size> | |
</CreatePartition> | |
<CreatePartition wcm:action="add"> | |
<Order>4</Order> | |
<Type>Primary</Type> | |
<Extend>true</Extend> | |
</CreatePartition> | |
</CreatePartitions> | |
<ModifyPartitions> | |
<ModifyPartition wcm:action="add"> | |
<Order>1</Order> | |
<PartitionID>1</PartitionID> | |
<Label>WINRE</Label> | |
<Format>NTFS</Format> | |
<TypeID>DE94BBA4-06D1-4D40-A16A-BFD50179D6AC</TypeID> | |
</ModifyPartition> | |
<ModifyPartition wcm:action="add"> | |
<Order>2</Order> | |
<PartitionID>2</PartitionID> | |
<Label>EFI</Label> | |
<Format>FAT32</Format> | |
</ModifyPartition> | |
<ModifyPartition wcm:action="add"> | |
<Order>3</Order> | |
<PartitionID>3</PartitionID> | |
</ModifyPartition> | |
<ModifyPartition wcm:action="add"> | |
<Order>4</Order> | |
<PartitionID>4</PartitionID> | |
<Label>Windows</Label> | |
<Letter>C</Letter> | |
<Format>NTFS</Format> | |
</ModifyPartition> | |
</ModifyPartitions> | |
<DiskID>0</DiskID> | |
<WillWipeDisk>true</WillWipeDisk> | |
</Disk> | |
</DiskConfiguration> | |
<ImageInstall> | |
<OSImage> | |
<InstallFrom> | |
<MetaData wcm:action="add"> | |
<Key>/IMAGE/NAME</Key> | |
<Value>Windows Server 2022 SERVERDATACENTER</Value> | |
</MetaData> | |
</InstallFrom> | |
<InstallTo> | |
<DiskID>0</DiskID> | |
<PartitionID>4</PartitionID> | |
</InstallTo> | |
</OSImage> | |
</ImageInstall> | |
<UserData> | |
<AcceptEula>false</AcceptEula> | |
<FullName>AdminAccount</FullName> | |
<Organization>OrgName</Organization> | |
<ProductKey> | |
<Key>VDYBN-27WPP-V4HQT-9VMD4-VMK7H</Key> | |
</ProductKey> | |
</UserData> | |
</component> | |
</settings> | |
<settings pass="specialize"> | |
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> | |
<InputLocale>0409:00000409</InputLocale> | |
<SystemLocale>en-US</SystemLocale> | |
<UILanguage>en-US</UILanguage> | |
<UserLocale>en-US</UserLocale> | |
</component> | |
</settings> | |
<settings pass="oobeSystem"> | |
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> | |
<Reseal> | |
<Mode>Audit</Mode> | |
</Reseal> | |
</component> | |
</settings> | |
<settings pass="auditUser"> | |
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS"> | |
<RunSynchronous> | |
<RunSynchronousCommand wcm:action="add"> | |
<Order>1</Order> | |
<Path>PowerShell -ExecutionPolicy Bypass -NoProfile F:\post-install.ps1</Path> | |
<Description>Run post-install script</Description> | |
</RunSynchronousCommand> | |
</RunSynchronous> | |
<Generalize> | |
<ForceShutdownNow>true</ForceShutdownNow> | |
<Mode>OOBE</Mode> | |
</Generalize> | |
</component> | |
</settings> | |
</unattend> | |
post-install.ps1: | | |
# Install virtio guest drivers | |
Start-Process msiexec -Wait -ArgumentList "/i E:\virtio-win-gt-x64.msi /qn /passive /norestart" | |
# Install qemu guest agent | |
Start-Process msiexec -Wait -ArgumentList "/i E:\guest-agent\qemu-ga-x86_64.msi /qn /passive /norestart" | |
# Rename cached unattend.xml to avoid it is picked up by sysprep | |
mv C:\Windows\Panther\unattend.xml C:\Windows\Panther\unattend.install.xml | |
# Eject CD, to avoid that the unattend.xml on the CD is picked up by sysprep | |
(New-Object -COMObject Shell.Application).NameSpace(17).ParseName("F:").InvokeVerb("Eject") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment