Lab/Windows Server 2022-template

From Slaskete wiki
Revision as of 13:06, 31 March 2023 by Einarjh (talk | contribs)
Jump to navigation Jump to search

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)