orcharhino meets Windows (Windows Netzwerk Deploy)

Seit Version 4.5.0 sind mit orcharhino Windows Installationen möglich. Damit können neben zahlreichen Linux Derivaten auch alle neueren Windows Versionen ab „Server 2012“ mit orcharhino installiert und gemanaged werden.

orcharhino bietet grundsätzlich zwei Wege zur Erstellung eines Host Systems: Die Bare Metal Installation (komplette Neuinstallation mit Netzwerkboot) und die Image Base Installation (z.B. Verwendung eines vorgefertigten VMware Templates mit vorinstalliertem OS).

Der fertige Windows Host kann per Knopfdruck erstellt werden. Zuvor müssen aber folgende Fragen beantwortet sein:

  • Wie wird ein universelles Windows Boot Image erstellt und was ist dabei zu beachten?
  • Wie bringt man orcharhino dazu in ein Windows Boot Image zu booten und das finale OS zu installieren?
  • Wie wird bei Windows ein automatisches Customizing erstellt (Unattended Installation)?

 

Lösung: Universelles Windows Boot Image

Microsoft bietet ein kostenloses Tool zur einfachen Erstellung eines Windows Boot Images. Das Microsoft ADK (Assessment and Deployment Kit) steht quellenoffen als Download zur Verfügung.

Nach der Installation des Kits wird mit dem Befehl „copy amd64 c:\winpe“ ein rudimentäres WinPE 64Bit Boot Image erstellt.

Abbildung 1 - Initiale Erstellung des WinPE Boot Images

Abbildung 1 – Initiale Erstellung des WinPE Boot Images

Dieses einfache Boot Image lässt sich nach Belieben erweitern. Das Hinzufügen zusätzlicher Sprachpakete sowie von Software (z.B. wget) und Treibern (Netzwerktreiber oder HDD Treiber) ist so möglich.

Abbildung 2 - Beispiel - VMware Treiber werden dem Image hinzugefügt

Abbildung 2 – Beispiel – VMware Treiber werden dem Image hinzugefügt

Wichtig: Je mehr Treiber dem Image hinzugefügt werden, desto größer wird es (zusätzliche Treiber sind oft mehrere Gigabyte groß). Der Vorteil dabei ist, dass das Boot Image sowohl direkt auf einem physischen Server als auch auf einem Hypervisor wie VMware oder Hyper-V verwendet werden kann.

Bei guter Vorbereitung kann dieses universell für jede Windows Installation verwendet werden.

Lösung: orcharhino bootet das universelle WinPE Image

Zum Booten von Windows Systemen werden zwei Dateien benötigt. Diese befinden sich im orcharhino TFTP Ordner:

  • wimboot
  • ipxe.lkrn

orcharhino bootet das universelle WinPE Image

Beide Dateien können von der Seite des Open Source Projekts „iPXE“ heruntergeladen und verwendet werden. Quelle: ipxe.org

Nun ist es generell möglich mit orcharhino das zuvor erstellte WinPE via TFTP zu booten. Die dafür notwendigen orcharhino Templates werden im Folgendem erläutert:

Nach Abschluss aller Vorbereitungen werden die Windows ISO Files auf den orcharhino geladen und via Web (http) zur Verfügung gestellt.

 Dazu wird die original Windows DVD oder das ISO am orcharhino gemountet und der komplette Inhalt in ein Webverzeichnis kopiert. Zum Beispiel nach: #/var/www/html/pub/images/Windows/{version}

Im letzten Schritt muss die original Windows Boot.wim einmalig mit der zuvor erstellten unsiversellen boot.wim ausgetauscht werden.

Das dazugehörige orcharhino Boot Template sollte den Type „PXELinux Template“ eingestellt haben und folgenden Inhalt besitzen.

####################

#!ipxe

default Windows

label Windows

kernel ipxe.lkrn

APPEND dhcp && kernel wimboot && initrd <%= foreman_url("script") -%> win_init.cmd && initrd <%= @host.os.medium_uri(@host) %>boot/bcd BCD && initrd <%= @host.os.medium_uri(@host) %>boot/boot.sdi boot.sdi && initrd <%= @host.os.medium_uri(@host) %>sources/boot.wim boot.wim && boot

####################
Abbildung 3 - Inhalt des PXE Templates

Abbildung 3 – Inhalt des PXE Templates

Nach dem Boot-Start des universalen WinPE zieht dieses automatisch ein weiteres orcharhino Template an. In diesem kann direkt oder über Snippets das Festplattenlayout bestimmt werden. Treiber können nachgeladen bzw. installiert werden. Weiter ist hier die Definition der zu installierenden Windows Version möglich. Aktuell werden folgende Versionen unterstützt:

  • Windows Server 2012
  • Windows Server 2016 Core
  • Windows Server 2016 Desktop
  • Windows Server 2019 Core
  • Windows Server 2019 Desktop
  • Windows 10 Enterprise

Lösung: Windows unattended Installation

Wichtig zu wissen ist, wie dieser Mechanismus bei Windows funktioniert. Windows benutzt hierfür eine Datei, die sich „unattended.xml“ nennt und die beim erstmaligen Starten des Systems im Ordner „C:\Windows\Panther“ liegen muss.

Über ein orcharhino „Provisioning Template“ kann diese XML angepasst und während des Bootens an das Windows System übergeben werden.

ATIX Beispiel des Windows Provisioning Templates

In diesem ATIX Template werden folgende Features bei der Windows Installation ausgeführt:

  • Setzen des Administrator Passworts
  • Automatischer Domain Join
  • Unterdrücken der Installations PopUps (unattend Mode)
  • Windows Seriennummer / Key Eintragung
  • Setzen von Firewall Regeln (z.B. Allow WinRM, ICMP Echo, Remote Desktop)
  • Setzen von Remote Desktop Einstellungen
  • WinRM Konfiguration. Management via Ansible
  • User Add „ansible“ Separaten User für Ansible anlegen.
  • Generelle Registry Einträge erstellen oder anpassen
  • Installation und Konfiguration von Puppet 5
  • BGinfo für Windows konfigurieren

Ergebnis:

Nach Abschluss aller Vorbereitungen, dem Anlegen aller orcharhino Templates sowie nach der Konfiguration der entsprechenden „Installations Medien“, „Operating Systemen“ und „Host Gruppem im orcharhino kann das erste Windows Deployment gestartet werden.

On Top:

Die ATIX bietet am 28. September 2019 ein kostenloses Webinar zum Thema orcharhino mit Schwerpunkt Windows Installation (inkl. Live-Demo). Bei Interesse sind Sie herzlich eingeladen bei dieser kostenlosen orcharhino Session teil zu nehmen. Im Live-Chat können Sie uns selbstverständlich auch Ihre Fragen dazu stellen.