Milestone 10 ‐ OpenStack & Windows - jacobwilliams100/sys-350 GitHub Wiki
Builds off lab 8
Prerequisites
We must Enable IP Forwarding
use sysctl -w net.ipv4.ip_forward=1
Update the settings so it persists after a reboot, do nano /etc/sysctl.conf
and uncomment this line:
Dependencies and KVM
We must install KVM-based VM manager. Start by upgrading packages with sudo apt upgrade
Then run these commands to install dependencies:
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virtinst virt-manager
sudo systemctl is-active libvirtd
Add your user to the libvirt group with sudo usermod -aG libvirt jake
You will need to relog to activate the permissions.
Open the KVM Virtual Machine Manager with sudo virt-manager
Deliverable 1. Provide a screenshot showing your running KVM. Show it with some proof you are on your super.
Image Creation
Downloading Necessary Files
Go to https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso and download
virtio-win-0.1.262.iso
Then go to http://192.168.3.185/files
and download en-us_windows_server_2019_x64_dvd_f9475476.iso
Move both files from /home/jake/Downlaods
to /var/lib/libvirt/images/
(necessary for permission reasons)
Building the Base Image
Back in virt-manager, Click "Create New Virtual Machine"
choose local install media, and pick /var/lib/libvirt/images/en-us_windows_server_2019_x64_dvd_f9475476.iso
Bump up the RAM to 4096
Pick "Select or create Custom Storage" and Manage
Then create a new volume
"raw" format, 25GB
You need to "Customize configuration before install"
Change the SATA Disk 1 Disk Bus to VirIO
Make sure SATA CDROM 1 points to The Server2019 iso
And add another "SATA CDROM 2" that points to virtio-win.iso
Set your NIC's device model to VirtIO
Now you may go ahead and start the installation
We want Standard (Desktop Experience)
When you get to the storage page, rescan, look for driver, and pick 2k19
Install on the 25GB drive we created earlier
This will take a few minutes.
If it resets properly, then it worked. Go ahead and set a password.
Install the VirIO drivers using CD Drive E
You should now be able to get online
Now open admin powershell and do sconfig
Set time to EST
Normally we would want to update the OS now but we will put this off til after the lab and run it overnight in case it takes forever.
Set updates to manual
Still in powershell, run Enable-NetFirewallRule -name RemoteDesktop-UserMode-In-TCP
to configure RDP execution policy
and execution policy with Set-ExecutionPolicy Unrestricted
Now enable Remote Desktop by going to Control Panel->search "remote"->Allow remote access to your computer
select "Allow remote connections to this computer" and uncheck "Allow connections only from..."
Install virtio-win-guest-tools from Disc E
Now download and install Google Chrome (it is located on the fileserver at http://192.168.3.185/files)
Run CloudBase Init, downloading the installer from https://cloudbase.it/downloads/CloudbaseInitSetup_Stable_x64.msi

- A ping from your Windows Server to the internet
- A terminal window on your Ubuntu host (superX) showing: ** your Freeman IP address ** a ping to the floating IP of your Server19 instance
- and a partridge in a pear tree (doesn’t count towards grade)
Description of Networking
In this lab, we used Microstack to create a virtual network for the windows server VM to connect to the host machine and the outside internet. We can get an idea of this by looking at the Network Topology Page on Openstack's web UI.
We can ignore the test network, it's unrelated to this lab. The sys350 virtual network connects the VM sys350-serverinstance to the test-router virtual router. test-router, in turn, connects to another virtual network "internal". sys350-serverinstances possesses a floating IP (10.20.20.214) on "external" as a type of virtual IP for hosts outside of the sys350 virtual network to reach it. The "external" network uses the ESXi host (running Ubuntu) as its gateway, which is why we can ping the virtual IP from it. Since the ESXi host is connected to the internet via the room gateway, the external and sys350 networks within it may use it to reach the internet.
Reflection
Overall, I enjoyed this lab. Windows on Openstack feels like a bit of a workaround compared to the relatively painless process of creating a Windows VM on VCenter. It relies on so much middleware to get going, and even then, not everything worked as expected (for example, CloudBase did not initialize properly so I had to create a new password on login). However, unlike VCenter, once it got going, it did so reliably, without disconnecting every couple of minutes. I like that it is perfectly viable to use OpenStack from both the CLI and web UI interfaces. Sometimes when I struggled to get a CLI command to work, I would do the task using the web UI (and vice versa).
I encountered two major issues during this lab but I was able to troubleshoot both of them relatively easily. The first came when I was unable to load the Spice JavaScript Client from the OpenStack web UI. I do not know what was causing the issue, but simply restarting the microstack.nova-spicehtml5proxy service seemed to solve it. The other issue was that I could not ping the Server2019 VM from my ESXi host. This is an issue that I learned about in SYS-265; Windows Server does not automatically respond to pings, you need to enable it under remote settings in sconfig.