Hoe lanceer je een Windows Instance op OpenStack - Fuga Cloud
Hoe lanceer je een Windows Instance op OpenStack
Windows

Hoe lanceer je een Windows Instance op OpenStack

In deze tutorial laat ik zien hoe Windows Server 2016 kan draaien op OpenStack.

Het is nog niet toegestaan om deze tutorial op Fuga Cloud Release 2 te doen.

Voorbereiding

  1. Download een Windows 2016 Server ISO image bij Microsoft (registratie is vereist).
  2. Download de Fedora VirtIO drivers. Meer opties zijn hier te vinden.
  3. In dit voorbeeld gebruiken we VirtalBox. Dit is ook prima met KVM te doen op Linux.

Maak een VM aan binnen VirtualBox

  • Kies een naam, kies als type Microsoft Windows en als versie Other Windows (64 bit).
  • Geef de VM minimaal 2GB geheugen.
  • Maak een virtuele schijf aan van minimaal 15GB, de standaard 20GB is prima, kies als type QCOW.

Als deze is aangemaakt start je de VM niet, maar passen we eerst nog een aantal zaken aan in het instellingen scherm:

  • Systeem > processor: Voeg een tweede CPU toe, dat scheelt tijd
  • Poorten: Zet bij poorten de eerste seriële poort aan (COM1), dit is voor logging en debugging
  • Opslag: Verander de eerste CD-ROM naar primary slave
  • Opslag: Koppel de eerste CD-ROM aan de Windows ISO die je hebt gedownload
  • Opslag: Voeg een tweede CD-ROM (secondary master) toe aan de bestaande IDE controller, koppel hier de virtio driver disc aan
  • Audio: Zet de audio uit (tenzij je dat graag gebruikt)
  • Netwerk: Pas het netwerk aan naar bridge mode, dan kun je er straks alvast via RDP bij
  • Netwerk: Pas het netwerktype aan naar virtio-net

Nu heb je een VM die je kunt starten.

De twee ISO’s hebben nu de goede opstartvolgorde, je VM zal na het starten beginnen met installeren vanaf de ISO.

Windows installeren

Na het starten begint de installatie van Windows automatisch.

Windows wil een aantal regional settings weten waarna er gevraagd wordt welke versie van Windows je wilt installeren.

  • In dit voorbeeld kiezen we Windows Server 2016 Datacenter Evaluation (Desktop Experience)
  • Lees de licentievoorwaarden, wil je doorgaan dan zul je ze moeten accepteren
  • Kies hierna voor de Custom installatie
Choose an OS

Drivers installeren

Hierna heb je de optie om de viostor SCSI drivers te installeren, deze zijn nodig, ook al gebruik je nu de IDE controller van VirtualBox.

Om ze te zien browse je naar e:\viostor\2k16\amd64\ en haal je het vinkje weg zodat je alles kunt zien.

Kies de schijf en laat de installer verder z’n werk doen.

Als laatste zal Windows om een wachtwoord vragen en ben je klaar met de installatie. Aangezien je een image wilt maken is het zaak dat je nu je eigen settings aanpast. Er zijn handleidingen en regels over wat je wel en niet kunt aanpassen en waarom, we beperken ons nu tot het nodige.

  • Log in (en laat Windows even met rust, Server Manager zal starten net zoals nog een aantal achtergrond processen)

Wat opvalt is dat het netwerk niet werkt, dit komt omdat de juiste drivers niet zijn geïnstalleerd.

Install driver
  • Browse naar E:\NetKVM\2k16\amd64 en installeer netkvm.inf (selecteer het bestand en klik op rechter muisknop)
  • Installeer daarna de IO drivers E:\viostor\2k16\amd64\viostor.inf (selecteer het bestand en klik op rechter muisknop)

Hierna werkt de netwerkkaart wel, deze hebben we straks nodig en nu weten we zeker dat de IO drivers hiervoor zijn geïnstalleerd.

Install driver

Remote Desktop

Om straks RDP te kunnen gebruiken, wat het beheer gemakkelijker maakt, passen we twee zaken aan:

  • Start Powershell en zet de firewall open voor RDP:

    powershell
    
    Enable-NetFirewallRule -name RemoteDesktop-UserMode-In-TCP
    
  • Klik op Start > Settings, zoek op remote desktop en kies allow remote desktop access to your computer.

  • Kies in de popup voor Allow remote connections to this computer, klik op OK om de popup te sluiten.

  • Indien je onofficiële of oudere RDP clients gebruikt haal dan het vinkje eronder weg.

  • Klik op Apply en OK.

Install driver

Je kunt nu de RDP connectie testen, deze zou nu moeten werken.

Cloud-Init

Om Cloud-Init te kunnen gebruiken (dit hebben we nodig om bijvoorbeeld bij het uitrollen een admin wachtwoord te kunnen instellen) moeten we dit configureren:

powershell
Set-ExecutionPolicy Unrestricted

Download en installeer hierna Cloud-Init:

Invoke-WebRequest -UseBasicParsing https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi -OutFile cloudbaseinit.msi

De download is ongeveer 40MB

./cloudbaseinit.msi
Install Cloud-Init
  • Klik op Next
  • Om door te gaan moet je de licentievoorwaarden lezen en accepteren
  • Klik op Next
  • Alles staat standaard prima, klik weer op Next
  • laat alles staan behalve de Serial port for logging, zet die op COM1 Install Cloud-Init
  • Next…
  • Install

Als de installatie klaar is selecteer dan zowel run Sysprep als Shutdown when Sysprep terminates.

Install Cloud-Init

Als je op Finish klikt wordt de Windows installatie voorbereid voor het gebruik als image en wordt de VM afgesloten.

Nu heb je een Windows VM die uit staat, op basis van een qcow bestand welke we kunnen uploaden naar OpenStack.

Image uploaden

Als de upload snelheid van je internetverbinding niet zo hoog is (Windows images zijn al gauw ruim 10GB) raad ik je aan om hiervoor de OpenStack CLI tools te gebruiken (zie hieronder).

Optie 1: Uploaden via een OpenStack Dashboard

Het is nog niet toegestaan om Windows images te uploaden op Fuga Cloud Release 2.

  • Ga naar een OpenStack Dashboard
  • Login
  • Kies links ‘Images’
  • Create Image
  • Vul een naam in en een beschrijving
  • Image Source > Image File en kies de qcow image die je hebt aangemaakt. De locatie kun je vinden in VirtualBox. In mijn geval is het een qcow van bijna 13GB.
  • Zet het formaat naar Qcow2
  • Architecture: x86_64
  • Minimum Disk: 20
  • Minimum RAM: 2048
  • Create Image

Nu zal de web-interface de gehele image uploaden waarna het verwerkt wordt en in de lijst met beschikbare images terecht komt.

Optie 2: Uploaden via OpenStack CLI tools

Zorg ervoor dat de OpenStack CLI tools zijn geïnstalleerd op je systeem. Zo niet, volg dan onze CLI tutorials.

Om via de CLI een nieuw image te maken moet je het volgende commando invoeren in je terminal:

openstack image create "imagename" --disk-format qcow2 --min-ram 2048 --min-disk 20 --file /path/to/image/imagename.qcow

Als het uploaden langer dan een uur duurt dan krijg je na het uploaden een 401-error, deze error krijg je omdat in de tussentijd het token is verlopen. Deze error kun je negeren. Voer nu het volgende commando in om te zien of het nieuwe image in de lijst van beschikbare images in OpenStack terecht is gekomen:

openstack image list

Als het nieuwe image niet in deze lijst staat probeer dan nogmaals een nieuw image aan te maken.

Windows starten

Om nu een Windows instance te starten volg je de normale procedure op 2 aanpassingen na:

  • Ga naar een OpenStack Dashboard
  • Login
  • Kik aan de linkerkant op Access & Security. Kies Security Groups en voeg een security group met RDP access voor het IP waar je vandaan connect toe (Ga naar deze website om je IP te achterhalen). Als je het nog niet hebt kun je de Security Group ook later aanmaken en aan de instance koppelen.
  • Maak een nieuwe instance aan in het Instances panel. Om straks in te kunnen loggen in Windows heb je een wachtwoord nodig. Het eerder aangemaakte wachtwoord werkt niet meer. Klik op Metadata om een nieuwe custom key admin_pass toe te voegen waarna je deze rechts een value kunt geven die in platte tekst zichtbaar is. Dit is vervelend, echter moet je dit wachtwoord aanpassen bij de eerste login.

Bronnen

  1. https://docs.openstack.org/image-guide/windows-image.html

Was this article helpful?


Next article:

How to setup GitLab CI/CD on Fuga Cloud

For some features in GitLab you will have to implement an email service like MailGun, which is beyond the scope of this tutorial. In this tutorial you will learn how to create a CI/CD pipeline that deploys to the Fuga Object Store using GitLab and GitLab runners. GitLab comes with built-in Continuous Integration, Continuous Deployment, and Continuous Delivery support to build, test, and deploy your application. When a commit is made, a CI/CD pipeline will be started.