In this blog, we will provide a procedure for installing an all-in-one OpenStack Newton Open Virtual Appliance (OVA) on Linux (Fedora 27) and KVM hypervisor.
In his book, Matt describes how to import the OVA image into VirtualBox. Unfortunately VirtualBox (packaged by Oracle) cannot be installed on Fedora 27 without disabling the Secure Boot feature, because otherwise the vboxdrv kernel module, which is not cryptographically signed with a Fedora key, would not be loaded into memory:
# modprobe -v vboxdrv insmod /lib/modules/4.14.11-300.fc27.x86_64/misc/vboxdrv.ko modprobe: ERROR: could not insert 'vboxdrv': Required key not available
Switching to the KVM hypervisor solves this long standing issue.
Make sure VT-x or AMD-v virtualization is enabled in your computer’s BIOS. To check whether you have proper CPU support, run the command:
$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo
If nothing is printed, your system does not support the relevant extensions and you should check in the BIOS (or UEFI) setup whether you can enabled it.
You also need a root access to the Linux system (direct access or via the sudo command).
As stated by the authors of the OpenStack appliance, the hardware requirements are:
- 2 GHz or faster 64-bit (x64) processor with Intel VTx or AMD-V support
- 6 GB available RAM
- 10 GB available hard disk space
Qemu and KVM configuration
Fedora uses the libvirt family of tools as its virtualization solution. By default libvirt on Fedora will use Qemu to run guest instances. Qemu can emulate a host machine in software, or given a CPU with hardware support can use KVM to provide a fast full virtualization.
You need to install the following group of packages:
# dnf install @virtualization
and than start the service libvirtd:
# systemctl start libvirtd
To start libvirtd on boot, run the folloing command:
# systemctl enable libvirtd
Verify that the kvm kernel modules were properly loaded:
$ lsmod | grep ^kvm kvm_intel 229376 3 kvm 696320 1 kvm_intel
OVA image conversion
Download the .ova image from GitHub.
The .ova format is nothing more than a tar archive, containing an .ovf and a .vmdk files, respectively the VM configuration and disk.
So, you can simply extract the files:
$ tar xvf coa-aio-newton.ova
and do the actual image conversion to the qcow2 format, a file format for disk image files used by QEMU:
$ qemu-img convert -O qcow2 coa-aio-newton_2_1-disk001.vmdk coa-aio-newton_2_1-disk001.qcow2
The new image will be named coa-aio-newton_2_1-disk001.qcow2.
The interface virbr0 should now be available on your system. We need to create one more for the OVA image to be fully functional:
# cd /etc/sysconfig/network-scripts/ # cat <<EOF | sudo tee ifcfg-virbr1 DEVICE="virbr1" BOOTPROTO="static" IPADDR="192.168.56.2" NETMASK="255.255.255.0" GATEWAY="192.168.56.1" ONBOOT="yes" TYPE="Bridge" NM_CONTROLLED="yes" EOF # ./ifup virbr1
You can check the network configuration by entering the command:
$ ip addr show dev virbr1
Start up the virtual machine
Now it’s time to start the appliance. Launch virt-manager with your regular user. Add a new virtual machine from an existing disk image.
Select the Linux OS and the Ubuntu distribution. Than browse the local disk for the .qcow2 image coa-aio-newton_2_1-disk001.qcow2.
Configure 6Gb of memory and one CPU for this virtual machine.
Select “Network Interfaces” from the menu and configure the interface virbr1 as described in the screenshot:
And finally start the instance. You will know it’s up and running once you see the Ubuntu logon prompt.
You can login to the console or better SSH into the appliance from a terminal client on your host operating system.
$ ssh email@example.com
You can also start testing your OpenStack environment through the Horizon dashboard.
Congratulations! You can now start experimenting with the OpenStack technologies.