Create a Linux Server for VM and manage through the web with KVM + Kimchi + Wok

vm May 17, 2018

Kimchi is an HTML5 based management tool for KVM. It is designed to make it as easy as possible to get started with KVM and create your first guest. - Kimchi project

In this tutorial, I'll show you how to create a Linux Server to manage VMs (Virtual Machines) through the web.

About the girl in the cover image, she is using a red hat... Red Hat... RedHat... Do you got it?

Requirements

We'll use the KVM as our virtualization hypervisor tool. Your system require virtualization technologies:

  • an Intel processor with the Intel VT-x and Intel 64 virtualization extensions for x86-based systems; or
  • an AMD processor with the AMD-V and the AMD64 virtualization extensions.

You can find more information at official RedHat website.

Execute the command below and check it if return some value. If returns so your hardware has support for KVM's hypervisor:

grep -E 'svm|vmx' /proc/cpuinfo

Environment

In this tutorial I'll show you how to prepare and install kimchi, wok and ginger-base on Ubuntu 16.04 but it should work perfectly with Ubuntu 14.04 too.

ONE BUG HAS BEEN FOUND WITH UBUNTU 18.04. A new release wasn't created yet. Please, use Ubuntu 16.04 or 14.04.

So prepare a clean machine with Ubuntu 16.04. This machine will be your server so could be good choose some different flavor of Ubuntu. If you're an experience Linux user you can choose the Ubuntu Server 16.04 or if you need a GUI (Graphic User Interface) the Xubuntu 16.04 can be a perfect choice to you cause it's lightweight, intuitive and beautiful desktop environment.

What will be installed?

KVM

"Kernel-based Virtual Machine (KVM) is an open source virtualization technology built into Linux®. Specifically, KVM lets you turn Linux into a hypervisor that allows a host machine to run multiple, isolated virtual environments called guests or virtual machines (VMs)." What is KVM? - RedHat

Kimchi

"Kimchi is an HTML5 based management tool for KVM. It is designed to make it as easy as possible to get started with KVM and create your first guest.

Kimchi manages KVM guests through libvirt. The management interface is accessed over the web using a browser that supports HTML5." - Kimchi project

Wok

"Wok is a cherrypy-based web framework with HTML5 support originated from Kimchi. It can be extended by plugins which expose functionality through REST APIs." - Wok project

Ginger base

"Ginger Base is an open source base host management plugin for Wok (Webserver Originated from Kimchi), that provides an intuitive web panel with common tools for configuring and managing the Linux systems." - Ginger project

Installation

Update your system repository and your system packages:

sudo apt-get update
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y

Install the nginx. This is a hack cause some bugs was found during the original installation process:

sudo apt-get install -y nginx

Install the wget. It'll be used to download the kimchi, wok and gingerbase packages:

sudo apt-get install -y wget

Now create a new dir, go to there and download the kimchi, wok and gingerbase packages:

mkdir -p kimchi-packages
cd kimchi-packages
wget https://github.com/kimchi-project/wok/releases/download/2.5.0/wok-2.5.0-0.noarch.deb
wget http://kimchi-project.github.io/gingerbase/downloads/latest/ginger-base.noarch.deb
wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.noarch.deb

Install the packages. After install some errors will raise telling that some dependencies wasn't found. The second command will fix it and install all dependencies:

sudo dpkg -i *.noarch.deb
sudo apt-get install -f

Start the processes

As default the Ubuntu enable the services from packages during the installation process. So the kimchi dependencies are already enable but not started.

Restart you system in order to start all services and check if everything is working:

sudo shutdown -r 0

Access

Now you can access the kimchi web interface at:

https://127.0.0.1:8001

An error message related to certificate validation will be showed. This happens cause you are using HTTPS without a domain name without a pubic IP address and a signed certificate. If you want to learn more check the video Encryption as Fast As Possible from Techquickie.

Just add the address to Ignore list of your browser and go to the login page.

The login and password are the same as Linux users. If you want to add more users to Kimchi you just need to add new users Linux system. This authentication method are called PAM authentication. You can learn more about at RedHat: Chapter 2. Using Pluggable Authentication Modules (PAM)

Referencies

Tags

Luiz Costa

I am a senior software engineer at Red Hat / Ansible. I love automation tools, games, and coffee. I am also an active contributor to open-source projects on GitHub.