-
Notifications
You must be signed in to change notification settings - Fork 46
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding packer and autounatted.xml files configuration
- Loading branch information
Showing
6 changed files
with
322 additions
and
0 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
output/ | ||
kvm/isos/ |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
start: | ||
packer init kvm | ||
PACKER_LOG=1 packer build kvm |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
## Packer VM image builder | ||
|
||
This folder hosts the plain boot and automatic installation scripts | ||
using packer, the final outcome is the qemu artifact ready to be used | ||
as a VM for swdt with SSH enabled. | ||
|
||
Pre-requisites: | ||
|
||
* Hashicorp Packer >=1.10.2 | ||
|
||
2 ISOs are required, save them on isos folder: | ||
|
||
* **window.iso** - [Windows 2022 Server](https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-2022) | ||
* **virtio-win.iso** - [Windows Virtio Drivers](https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md) | ||
|
||
### Running | ||
|
||
```shell | ||
make start | ||
``` | ||
|
||
Behind the scenes it will call Packer in the kvm build | ||
|
||
```shell | ||
packer init kvm | ||
PACKER_LOG=1 packer build kvm | ||
``` | ||
|
||
### Export | ||
|
||
The folder `output` will contain the `win2k22` QEMU QCOW Image. | ||
|
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,237 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<unattend xmlns="urn:schemas-microsoft-com:unattend"> | ||
<settings pass="windowsPE"> | ||
<component name="Microsoft-Windows-PnpCustomizationsWinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" 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="A"> | ||
<Path>a:\</Path> | ||
</PathAndCredentials> | ||
<PathAndCredentials wcm:action="add" wcm:keyValue="1"> | ||
<Path>E:\STORAGE\SERVER_2008\AMD64</Path> | ||
</PathAndCredentials> | ||
<PathAndCredentials wcm:action="add" wcm:keyValue="3"> | ||
<Path>E:\NETWORK\SERVER_2008\AMD64</Path> | ||
</PathAndCredentials> | ||
</DriverPaths> | ||
</component> | ||
<component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" 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"> | ||
<DiskID>0</DiskID> | ||
<WillWipeDisk>true</WillWipeDisk> | ||
<CreatePartitions> | ||
<CreatePartition wcm:action="add"> | ||
<Order>1</Order> | ||
<Size>350</Size> | ||
<Type>Primary</Type> | ||
</CreatePartition> | ||
<CreatePartition wcm:action="add"> | ||
<Order>2</Order> | ||
<Extend>true</Extend> | ||
<Type>Primary</Type> | ||
</CreatePartition> | ||
</CreatePartitions> | ||
<ModifyPartitions> | ||
<ModifyPartition wcm:action="add"> | ||
<Format>NTFS</Format> | ||
<Label>System</Label> | ||
<Order>1</Order> | ||
<PartitionID>1</PartitionID> | ||
<TypeID>0x27</TypeID> | ||
</ModifyPartition> | ||
<ModifyPartition wcm:action="add"> | ||
<Order>2</Order> | ||
<PartitionID>2</PartitionID> | ||
<Letter>C</Letter> | ||
<Label>OS</Label> | ||
<Format>NTFS</Format> | ||
</ModifyPartition> | ||
</ModifyPartitions> | ||
</Disk> | ||
</DiskConfiguration> | ||
<ImageInstall> | ||
<OSImage> | ||
<InstallTo> | ||
<DiskID>0</DiskID> | ||
<PartitionID>2</PartitionID> | ||
</InstallTo> | ||
<InstallFrom> | ||
<MetaData wcm:action="add"> | ||
<Key>/IMAGE/INDEX</Key> | ||
<Value>3</Value> | ||
</MetaData> | ||
</InstallFrom> | ||
<WillShowUI>OnError</WillShowUI> | ||
</OSImage> | ||
</ImageInstall> | ||
<UserData> | ||
<AcceptEula>true</AcceptEula> | ||
<FullName>Administrator</FullName> | ||
<Organization>Organization</Organization> | ||
<ProductKey> | ||
<WillShowUI>Never</WillShowUI> | ||
</ProductKey> | ||
</UserData> | ||
<EnableFirewall>true</EnableFirewall> | ||
</component> | ||
<component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" 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>0409:00000409</InputLocale> | ||
<SystemLocale>en-US</SystemLocale> | ||
<UILanguage>en-US</UILanguage> | ||
<UILanguageFallback>en-US</UILanguageFallback> | ||
<UserLocale>en-US</UserLocale> | ||
</component> | ||
</settings> | ||
<settings pass="offlineServicing"> | ||
<component name="Microsoft-Windows-LUA-Settings" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" | ||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<EnableLUA>false</EnableLUA> | ||
</component> | ||
</settings> | ||
<settings pass="generalize"> | ||
<component name="Microsoft-Windows-Security-SPP" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" | ||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<SkipRearm>1</SkipRearm> | ||
<SkipAutoActivation>true</SkipAutoActivation> | ||
</component> | ||
</settings> | ||
<settings pass="specialize"> | ||
<component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" | ||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<InputLocale>0409:00000409</InputLocale> | ||
<SystemLocale>en-US</SystemLocale> | ||
<UILanguage>en-US</UILanguage> | ||
<UILanguageFallback>en-US</UILanguageFallback> | ||
<UserLocale>en-US</UserLocale> | ||
</component> | ||
<component name="Microsoft-Windows-Security-SPP-UX" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" | ||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<SkipAutoActivation>true</SkipAutoActivation> | ||
</component> | ||
<component name="Microsoft-Windows-SQMApi" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" | ||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<CEIPEnabled>0</CEIPEnabled> | ||
</component> | ||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" | ||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<ComputerName>win2k22</ComputerName> | ||
</component> | ||
</settings> | ||
<settings pass="oobeSystem"> | ||
<component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" | ||
xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" | ||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> | ||
<AutoLogon> | ||
<Password> | ||
<Value>S3cr3t0!</Value> | ||
<PlainText>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 -Command "Set-SConfig -AutoLaunch $false"</CommandLine> | ||
<Description>Disable SCConfig</Description> | ||
<Order>10</Order> | ||
</SynchronousCommand> | ||
<SynchronousCommand wcm:action="add"> | ||
<CommandLine>cmd.exe /c powershell -File "a:\openssh.ps1"</CommandLine> | ||
<Description>Enable SSH</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> |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
echo "starting openssh" >> c:\temp\openssh.log | ||
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 | ||
Set-Service -Name sshd -StartupType Automatic | ||
Start-Service sshd |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
packer { | ||
required_plugins { | ||
qemu = { | ||
version = "~> 1" | ||
source = "github.com/hashicorp/qemu" | ||
} | ||
} | ||
} | ||
|
||
source "qemu" "windows" { | ||
vm_name = "win2k22" | ||
format = "qcow2" | ||
accelerator = "kvm" | ||
|
||
iso_url = "kvm/isos/windows.iso" | ||
iso_checksum = "sha256:3e4fa6d8507b554856fc9ca6079cc402df11a8b79344871669f0251535255325" | ||
|
||
cpus = 4 | ||
memory = 4096 | ||
|
||
efi_boot = false | ||
disk_size = "15G" | ||
disk_interface = "virtio" | ||
|
||
floppy_files = ["kvm/floppy/autounattend.xml", "kvm/floppy/openssh.ps1"] | ||
qemuargs = [["-cdrom", "./kvm/isos/virtio-win.iso"]] | ||
|
||
output_directory = "output" | ||
|
||
communicator = "ssh" | ||
ssh_username = "Administrator" | ||
ssh_password = "S3cr3t0!" | ||
ssh_timeout = "1h" | ||
|
||
boot_wait = "10s" | ||
shutdown_command = "shutdown /s /t 30 /f" | ||
shutdown_timeout = "15m" | ||
} | ||
|
||
build { | ||
name = "win2022" | ||
sources = ["source.qemu.windows"] | ||
} | ||
|