Lab/Windows Server 2022-template (Headless)

From Slaskete wiki
Jump to navigation Jump to search

DETTE ER FOR INSTALLASJON UTEN GUI

En template for Windows Server 2022 trengs som kan være grunnlag for de serverne vi trenger.

  1. Last ned ISO fra https://www.microsoft.com/en-us/evalcenter/download-windows-server-2022 (se guide her)
  2. Last også ned ISO for drivere: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
  3. Fra noden proxmox velges "Create VM", og følgende valg gjøres (andre valg står som default):
    1. General:
      1. VM ID: 1000
      2. Name: win-2022-mal
      3. Start at boot: false
    2. OS:
      1. storage: local
      2. ISO image: velg ISO-filen som ble lastet ned for Windows Server 2022
      3. Guest OS Type: Microsoft Windows
      4. Guest OS Version: 11/2022
    3. System:
      1. Graphic card: SPICE
      2. Qemu Agent: true
      3. TPM Storage og EFI Storage: local-lvm
    4. Disks:
      1. Bus/Device: SCSI
      2. Storage: local-lvm
      3. Disk size (GiB): 40
      4. Cache: Write Back
      5. Discard: true
    5. CPU:
      1. Sockets: 1
      2. Cores: 2
    6. Memory:
      1. 4096 (4 GiB)
    7. Network:
      1. Bridge: vmbr1
      2. Model: VirtIO (paravirtualized)
      3. VLAN Tag: 10
  4. Før installasjonen startes så trenger vi å legge til en CD-stasjon ekstra:
    1. Velg VM-en og gå til Hardware-fanen
    2. Velg Add - CD/DVD Drive
      1. Storage: local-lvm
      2. ISO Image: virtio-win.iso (iso-filen som inneholder driverne)
  5. Start VM-en og åpne konsollet. Se egen guide. Under installasjonen gjøres følgende valg:
    1. Time and currency format: Norwegian Bokmål
    2. Keyboard or input method: Norwegian
    3. Operating system: Windows Server 2022 Standard Evaluation (Desktop Experience)
    4. Aksepterer EULA, velger "Custom" på installation type.
    5. På spørsmål om hvor Windows skal installeres må man først laste inn disk-driverne:
      1. Trykk knappen Load Driver
      2. Trykk OK
      3. Velg driveren som passer best, i skrivende stund er det den som heter D:\amd64\2k22\vioscsi.inf
      4. Trykk Next
    6. Velg disken som har dukket opp, så Next
  6. La Windows-installasjonen fullføre
  7. Sett Administrator-passordet (husk å dokumentere!)
  8. Slå av Telemetry:
    1. I menyen til Windows server, skriv inn 10 for å endre på Telemetry-innstillingene
    2. Y for å endre
    3. 1 for off
  9. Installer libvirt-driverne og guest tools:
    1. I Proxmox sin Hardware-fane: Plugg inn virtio-ISO-en igjen
    2. I VM-en: Skriv 15 for å gå til shellet
    3. Skriv D:\virtio-win-guest-tools.exe og installer den med default-innstillinger. Dette setter på plass nettverks-drivere, sørger for at mus og kopiering av tekst o.l fungerer bedre, lar deg endre oppløsning ved å endre størrelse på vinduet osv.
  10. Start Server-config-menyen igjen ved å lukke vinduet
  11. Sett opp nettverks-innstillingene:
    1. I menyen til Windows Server, skriv 8 for nettverksinnstillinger
    2. Velg 1 for det virtuelle nettverkskortet
    3. Velg 1 for å sette addresse
    4. Velg S for statisk IP
    5. For static IP address, skriv inn 10.0.10.3
    6. Trykk enter på subnet (det setter automatisk til 255.255.255.0)
    7. For default gateway, skriv inn 10.0.10.1
    8. Trykk 8 for nettverksinnstillinger igjen
    9. Velg 1 for det virtuelle nettverkskortet
    10. Velg 2 for å sette opp DNS
    11. For preferred DNS server, sett 1.1.1.1
    12. For alternate DNS server, sett 1.0.0.1
  12. Kjør Windows-oppdateringer:
    1. I menyen til Windows Server, skriv 6 for Install updates
    2. Velg 1 for All quality updates
    3. Velg A for å installere alle oppdateringer
    4. Gjenta disse stegene til det ikke gjenstår flere oppdateringer, reboot når det trengs
  13. Klargjør maskinen for fjernstyring fra Ansible via WinRM ved å kjøre følgende kommandoer i Powershell som admin (fra denne guiden: https://docs.ansible.com/ansible/latest/user_guide/windows_setup.html)
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $file -DisableBasicAuth $True -EnableCredSSP

Test at Ansible klarer å snakke med hosten via WinRM:

ansible all -i 10.0.10.3, -u Administrator --ask-pass -m win_command -a "ipconfig" -e ansible_connection=winrm -e ansible_winrm_transport=credssp -e ansible_winrm_server_cert_validation=ignore -e ansible_winrm_message_encryption=always

Dette skal gi output som ser ca. sånn ut:

10.0.10.3 | CHANGED | rc=0 >>

Windows IP Configuration


Ethernet adapter Ethernet Instance 0:

   Connection-specific DNS Suffix  . : 
   Link-local IPv6 Address . . . . . : fe80::21b9:f85f:6f41:b790%3
   IPv4 Address. . . . . . . . . . . : 10.0.10.3
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 10.0.10.1

Nå som Windows-oppdateringer og WinRM er satt opp så kan maskinen klargjøres for å bli til template:

C:\Windows\System32\Sysprep\sysprep.exe /oobe /generalize /shutdown

Når maskinen har slått seg av så konverteres maskinen til image ved å høyreklikke på VM-en og velge "Convert to template".

Til slutt endres standard-innstillingene til imaget for å være mer konservativ: Memory settes til 3072 MiB (3.00 GiB)