SUWI10

SUWI10 er Samfundets Upåaktede Windows-installasjon for Windows 10, et system som lar deg installere Windows på maskiner over nettverk uten å måtte gi dem oppmerksomhet mer enn høyst nødvendig.

Bakgrunn

Det finnes en rekke slike systemer, delt inn i to hovedlinjer: Image-baserte og installer-baserte. I image-baserte systemer installerer man først OSet for hånd, gjør eventuelle justeringer, programvareinstallasjon og slikt, og så lager en bit-for-bit-kopi av disken. Denne kopien skrives så til maskinene man vil installere til (vanligvis over nett).

I installer-baserte systemer kjører man i stedet OS-installasjonen, men instruert på en slik måte at man slipper å trykke på noe underveis.

Fordelen med førstnevnte er at alt kan settes opp eksakt slik man vil ha det, og eksakt slik blir det. Ulempen er at det er vanskelig og mye arbeid å tilpasse slike images til flere maskinvaretyper. (På Samfundet har vi meget bred variasjon.) Installer-baserte systemer fungerer vanligvis på langt flere maskinvarer, men er til gjengjeld mindre robust, siden de kan finne på å stoppe opp om installeren går inn i en ukjent eller uventet tilstand.

Felles for de aller fleste systemer som gjør disse tingene, er at de er komplekse, enterprise og onde, og gjerne også dyre. Microsofts løsninger krever Windows-tjenere.

SUWI10 er mest et stort hack for å starte Windows-installeren.

Virkemåte

SUWI10 har tre steg.

Steg 1: Netboot

SUWI10 starter ved at man netbooter inn i Windows Preinstallation Environment (WinPE) over PXE. Dette er beskrevet i en egen node, men kort sagt spør maskinen om PXE-boot over DHCP, og cirkus svarer med et iPXE-bilde som laster WinPE-ISOen fra http://ipxe.samfundet.no/suwi10.

Steg 2: WinPE

WinPE har den egenskapen at den ved oppstart kjører C:\Windows\System32\startnet.cmd. Dette skriptet monterer Samba-sharen \suwi10win som befinner seg i /export/cassarossa/ymse/suwi10/win på cassarossa. Herfra kjøres PowerShell-skriptet suwi10.ps1. Dette skriptet ber brukeren om ønsket maskinnavn og type lisensnøkkel. Selve nøkkelen hentes med HTTP-kall til https://choco.samfundet.no/api/getlicense.pl. Deretter kopieres autounattend_template.xml og modifiseres til å inneholde oppgitt maskinnavn og lisensnøkkel før Windows-installeren startes med \suwi10win\setup.exe. Dette skriptet leser autounattend.xml, som inneholder alle nødvendige svaralternativer for Windows-installasjonen.

Steg 3: Windows

Etter en liten stund booter maskinen inn i harddisken sin, som nå inneholder primitiv Windows. Herfra fortsetter installasjonen av komplett Windows, fortsatt med flittig bruk av autounattend.xml.

Ferdig!

Nå har maskinen installert et standard Windows-bilde med riktig lisensnøkkel og vertsnavn. Det mangler riktig nok programvare, og det er mer konfigurasjon som må gjøres. Dette skjer regelmessig med AD og Chocolatey, som ikke regnes som del av SUWI10.

Lage nytt WinPE-bilde

Først oppretter vi og monterer et nytt bilde.

Deretter setter vi input-locale og installerer powershell.

Nå gjør vi våre lokale endringer. Merk at for å bytte bakgrunnsbilde må vi først hacke litt rettigheter.

Nå gjenstår det bare å rydde opp og produksjonssette.

Lage ny eller endre svarfil (autounattend.xml)

TODO

Installasjon

MVP

Nice to have

Lisenser

MVP

MVP

Nice to have

Pakker

MVP

Nice to have

Ønsket programvare

MVP

Nice to have

Ønsket funksjonalitet

MVP

Nice to have

Kjente Win7-bugs

MVP

Nice to have

Lenker: Start, chocolatey, netboot

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2019-02-10 23:16 | Revisjon: 40 (historie, blame) | Totalt: 1522 kB | Rediger