Openstack test met behulp van devstack

We hadden weer een weekje vakantie en om die toch een beetje nuttig te gebruiken heb ik op mijn HP Prodesk machinetje maar een installatie van Openstack geprobeerd. Ik was er in het verleden al enkele malen mee begonnen maar steeds vastgelopen op het netwerk stuk. Maar ik wilde hoe dan ook Openstack een keer aan de praat krijgen. Dat is afgelopen vakantie dus gelukt met behulp van devstack.

Dus na de Ubuntu installatie op dit systeem, de instructies gevolgd op: https://docs.openstack.org/devstack/latest/

Na toch af en toe ergens tegenaan gelopen te zijn ben ik uiteindelijk uitgekomen op de volgende local.conf file:

[[local|localrc]]
PUBLIC_INTERFACE=enp2s0
HOST_IP=192.168.100.10
FLOATING_RANGE=192.168.100.0/24
PUBLIC_NETWORK_GATEWAY=192.168.100.10
Q_FLOATING_ALLOCATION_POOL=start=192.168.100.50,end=192.168.10.100
FIXED_RANGE=10.11.12.0/24
ADMIN_PASSWORD=SecretPassword!
DATABASE_PASSWORD=SecretPassword!
RABBIT_PASSWORD=SecretPassword!
SERVICE_PASSWORD=SecretPassword!

Let op dat je de interface, wachtwoorden en ip-addressen waarschijnlijk dient te wijzigen.

Na dat we het ./stack.sh commando hebben uitgevoerd en een tijdje hebben gewacht is als het goed is de installatie voltooid. De Openstack omgeving is klaar. Ik liep echter tegen het feit aan dat niet alle plaatjes/icoontjes goed worden weergegeven in Horizon (de WebGUI van Openstack. Om dit op te lossen heb ik het volgende aangepast in de /etc/apache2/sites-available/horizon.conf:

Alias /dashboard/static /opt/stack/horizon/static
Alias /static /opt/stack/horizon/static

Ik heb dus de tweede regel na de eerste regel toegevoegd.

Out-of-the box kunnen we een installatie doen voor een cirros installatie. Dit wijst zich eigenlijk vanzelf.
Voor een Ubuntu installatie kun je terecht op https://cloud-images.ubuntu.com/ en op de Openstack site is er ook lijst met cloud-images voor de verschillende distributies: https://docs.openstack.org/image-guide/obtain-images.html
Let erop dat je bij het aanmaken van een instance een ssh keypaar aanmaakt, hiermee zul je namelijk moeten inloggen. Veel cloud-images hebben namelijk geen standaard inlognaam/wachtwoord mogelijkheid.
Ook dien je de security groep aan te passen waar de Linux instances inzitten. Poort 22 (SSH) staat namelijk standaard niet aan.

Om een Windows instance te maken kun je met bijv. virtualbox een windows harddisk maken. Zie verderop in dit bericht hoe dat moet.
Vervolgens om de instance te starten kies je bij source de optie Create new volume voor NO en kies je de image die je geupload hebt.
Onder configuration kun je je cloud-init script kwijt bijv;

#cloud-config
users:
-
name: John
gecos: 'John'
primary_group: Administrators
groups: cloud-users
passwd: SecretPassword!
inactive: False
expiredate: 2030-01-01

runcmd:
- netsh advfirewall firewall set rule group="remote desktop" new enable=yes
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 0 /f
- reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Terminal Server\WinStations\RDP-Tcp" /v SecurityLayer /t REG_DWORD /d 2 /f

Als je nu de security groep aanpast waar deze instance in zit, zodat ook poort 3389 (RDP) wordt toegestaan, kun je met een rdp-programma inloggen met de gebruikt John en het wachtwoord SecretPassword!

Tip om een Windows image te maken:
Gebruik VirtualBox om een Windows machine te maken. Maak een machine met minimaal 2 GB aan RAM en een 15GB harddisk. Zorg ook voor een seriele poort. Doe de volledige WIndows installatie. Voer het volgende commando uit om cloudbase-init te laten werlken:

C:\powershell
C:\Set-ExecutionPolicy Unrestricted


Ook moet je zorgen dat de virtio drivers geinstalleerd worden: Deze zijn te vinden op: https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso
Installeer cloudbase-init (https://cloudbase.it/cloudbase-init/). Of doe dit via PowerShell:

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

Start dit op en gebruik de volgende waardes:
– Username: Administrator
– Network adapter to configure: Red Hat VirtIO Ethernet Adapter
– Serial port for logging: COM1
Kies uiteindelijk voor Run Sysprep en Shutdown
Als de machine uitstaat kun je de qcow file gebruiken als image voor in je Openstack omgeving.
Om van VirtualBox image naar openstack image te converteren:
qemu-img convert -f qcow -O qcow2 Windows2025.qcow Windows2025-2.qcow
Deze image upload je vervolgens naar Openstack om te gebruiken om Windows instances te maken.
Eventueel kun je deze via de cli maken door middel van:
openstack image create --disk-format qcow2 --container-format bare \
--public --file ./Windows2025-2.qcow2 windows-image