This is the first part of a two-part series.
I created this guide because there is not any real info out there on how to do this. It took me a while to figure out how to go from a fresh Fedora 26 install to a working hypervisor with full remote manageability using a web browser that also has a web-based console for the VMs. The official instructions don’t work and will not get you going at all. There is too much that is left out. Other information is either too old to be relevant or just doesn’t work.
As said above, this guide will show you how to go from a clean or fresh Fedora 26 install to a working hypervisor using KVM / qemu that you can remotely manage from anywhere via HTML5 using your web browser. This also gives you the ability to manage your virtual machines via a web-based console.
Host Recommendation: I recommend using Fedora 26 Server Edition using the Netinst .iso.
After you install the host OS, start at first boot following these steps:
- NetworkManager needs to go, or some things will not work later:
systemctl stop NetworkManager.service systemctl disable NetworkManager.service systemctl enable network.service reboot now
- Installs the ability to use ‘semanage’. I couldn’t figure out how to get WOK accessible remotely without this:
dnf install policycoreutils-python-utils
- Installs more Cockpit stuff; the built-in install is too minimal:
dnf install cockpit
- Make sure everything is up to date. If you used Netinst, it probably is:
- You need a place to store your virtual machine data if you haven’t set it up during OS installation.
- Set up ports and access:
firewall-cmd --add-port=8000/tcp --permanent firewall-cmd --add-port=8001/tcp --permanent firewall-cmd --add-port=8010/tcp --permanent firewall-cmd --add-port=64667/tcp --permanent firewall-cmd --reload semanage permissive -a httpd_t semanage port -a -t http_port_t -p tcp 8001 semanage port -a -t http_port_t -p tcp 8010 semanage port -a -t http_port_t -p tcp 64667
- WOK says some prereqs require the RHEL epel repo:
- Install and update the epel repo, then remove the install file:
dnf install epel-release-latest-7.noarch.rpm dnf update rm epel-release-latest-7.noarch.rpm
- Install prereqs for WOK:
dnf install gcc make autoconf automake gettext-devel git rpm-build libxslt python-cherrypy python-cheetah PyPAM m2crypto python-jsonschema python-psutil python-ldap python-lxml nginx openssl python-websockify fontawesome-fonts logrotate python-ordereddict
- Download WOK, Ginger-base, Ginger, and Kimchi:
wget https://github.com/kimchi-project/wok/releases/download/2.5.0/wok-2.5.0-0.fc25.noarch.rpm wget http://kimchi-project.github.io/gingerbase/downloads/latest/ginger-base.fedora.noarch.rpm wget http://kimchi-project.github.io/ginger/downloads/latest/ginger.fedora.noarch.rpm wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.fc25.noarch.rpm
- Install WOK, Ginger-base, Ginger, and Kimchi, then remove the install files:
dnf install wok-2.5.0-0.fc25.noarch.rpm ginger-base.fedora.noarch.rpm ginger.fedora.noarch.rpm kimchi-2.5.0-0.fc25.noarch.rpm rm wok-2.5.0-0.fc25.noarch.rpm ginger-base.fedora.noarch.rpm ginger.fedora.noarch.rpm kimchi-2.5.0-0.fc25.noarch.rpm
- Specify user and group for QEMU processes to be root by uncommenting the following lines below. I couldn’t get things running right without doing this:
- Now you should be able to remotely access your server at: