Lab/Windows Server 2022-template

From Slaskete wiki
Revision as of 13:33, 21 June 2022 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
  2. Fra noden proxmox velges "Create VM", og følgende valg gjøres:
    1. General:
      1. VM ID: 1000
      2. Name: win-2022
      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: 10/2016/2019 (selv om dette er Windows Server 2022)
    3. System:
      1. Graphic card: SPICE
      2. Qemu Agent: true
      3. Add TPM: True
      4. TPM Storage: local-lvm
    4. Disks:
      1. Bus/Device: VirtIO Block
      2. Storage: local-lvm
      3. Disk size (GiB): 40
      4. Discard: true
    5. CPU:
      1. Sockets: 1
      2. Cores: 2
    6. Memory:
      1. 4096 (6 GiB)
    7. Network:
      1. Bridge: vmbr1
      2. Model: VirtIO
      3. VLAN Tag: 10
  3. 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
    4. Aksepterer EULA, velger "Custom" på installation type.
    5. På spørsmål om hvor Windows skal installeres må man:
      1. I VM-en: Trykke Load Driver
      2. I Proxmox: på VM-en sin Hardware-fane må ISO-en endres midlertidig til virtio-win.iso
      3. I VM-en: velg OK, velg Red Hat VirtIO SCSI pass-through controller (D:\amd64\2k22\vioscsi.inf) og så Next, vent til driveren er installert
      4. I Proxmox: Sett ISO-filen tilbake til Windows 2022-installeren
      5. I VM-en: trykk Refresh, og så Next
    6. Velg disken som har dukket opp, så Next
  4. La Windows-installasjonen fullføre
  5. Sett Administrator-passordet
  6. 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
  7. 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.
  8. Start Server-config-menyen igjen ved å lukke vinduet
  9. 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
  10. 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
  11. 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)