Kimchi/Wok para gerenciamento de VM no Debian 9

Neste tutorial, faremos nosso próprio Hypervisor no Debian 9 instalando o KVM (Kernel-based Virtual Machine), assim como o Kimchi, que é uma plataforma de gerenciamento de virtualização baseada na web de código aberto para que possamos gerenciar nosso hipervisor facilmente através do navegador da web.

Distribuição usada: Debian 9 (Instalação limpa)

Primeiramente vamos adicionar ao repositório os componentes contrib e non-free

vim /etc/apt/sources.list
deb http://ftp.br.debian.org/debian/ stretch main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stretch main contrib non-free
 
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb-src http://security.debian.org/debian-security stretch/updates main contrib non-free
 
# stretch-updates, previously known as 'volatile'
deb http://ftp.br.debian.org/debian/ stretch-updates main contrib non-free
deb-src http://ftp.br.debian.org/debian/ stretch-updates main contrib non-free
<pre>
 
Atualize o repositório e instale as atualizações.
<pre>apt update ; apt upgrade -y

Instale os pacotes necessários.

# apt install firmware-linux-nonfree firmware-realtek nginx-full build-essential

Reinicie para que o novo modulo do kernel seja interpretado.

reboot

Baixe os pacotes necessários. (https://github.com/kimchi-project/kimchi/releases/latest)

# mkdir kimchi-project
# cd kimchi-project
# 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/wok-2.5.0-0.noarch.deb
# wget https://github.com/kimchi-project/kimchi/releases/download/2.5.0/kimchi-2.5.0-0.noarch.deb

No Debian 9 o pacote libvirt-bin requisito não está mais presente, foram substituidos pelos libvirt-daemon-system, libvirt-dev, libvirt-clients.

Portanto vamos precisar abrir nosso pacote .DEB e altera-lo. Vamos “hackear” eles 😛
Vamos criar um diretório tmp e extrai-lo

# mkdir tmp
# cd tmp
# ar p ../kimchi-2.5.0-0.noarch.deb control.tar.gz | tar -xz

Agora edite os arquivos controll & controll.in alterando “libvirt-bin,” para “libvirt-daemon-system, libvirt-dev, libvirt-clients,”

vim controll

Altere
libvirt-bin,
Por:
libvirt-daemon-system,
libvirt-dev,
libvirt-clients,

		Package: @PACKAGE_NAME@
		Version: @PACKAGE_VERSION@
		Section: base
		Priority: optional
		Architecture: all
		Depends: wok (>= 2.1.0),
		         python-imaging,
		         python-configobj,
		         novnc,
		         python-jsonschema (>= 1.3.0),
		         python-libvirt,
		         gettext,
-		         libvirt-bin,
+		         libvirt-daemon-system,
+		         libvirt-dev,
+		         libvirt-clients,
		         nfs-common,
		         qemu-kvm,
		         python-parted,
		         python-psutil (>= 0.6.0),
		         python-ethtool,
		         sosreport,
		         python-ipaddr,
		         python-lxml,
		         open-iscsi,
		         python-guestfs,
		         libguestfs-tools,
		         spice-html5,
		         python-magic,
		         python-paramiko
		Build-Depends: xsltproc,
		               gettext,
		               python-lxml
		Maintainer: Aline Manera <alinefm@br.ibm.com>
		Description: Kimchi web application

Faça o mesmo para o controll.in

# vim controll.in

Agora vamos empacota-lo novamente com o nome kimchi-2.5.0-0.deb9.noarch.deb

# cp ../kimchi-2.5.0-0.noarch.deb ../kimchi-2.5.0-0.deb9.noarch.deb
# tar czf control.tar.gz *[!z]
# ar r ../kimchi-2.5.0-0.deb9.noarch.deb control.tar.gz
# cd ..

Verifique se o arquivo kimchi-2.5.0-0.deb9.noarch.deb foi criado

# ls -lh

Vamos a instalação dos nossos arquivos .deb

# apt install ./wok-2.5.0-0.noarch.deb
# apt install ./ginger-base.noarch.deb
# apt install ./kimchi-2.5.0-0.deb9.noarch.deb

Fix Bug erro KCHTMPL0020E / KCHIMG0001E
Este é um bug na versão estável atual que ainda não foi corrigido, você verá o erro abaixo quando isso ocorrer.
KCHTMPL0020E: Unable to create template due error: KCHIMG0001E: Error probing image OS information: part_list: parted print: /dev/sda

Edite o arquivo templates.py (Se tiver dificuldade baixe o arquivo já alterado aqui para visualizar)

# vim /usr/lib/python2.7/dist-packages/wok/plugins/kimchi/model/templates.py

Remova a linha com “” e adiciona a com “+“.

[...]
-	-ISO_TYPE = "ISO 9660 CD-ROM"
+	+ISO_TYPE = ["DOS/MBR", "ISO 9660 CD-ROM"]
[...]
	        # cdrom
-	        if ISO_TYPE in ftype:
+	        iscdrom = [t for t in ISO_TYPE if t in ftype]
+	        if iscdrom:
[...]

Reinicie

# reboot

Abra em seu navegador a https://IP:8001. Acesse com seu usuário e senha do sistema (“root”).

Antes de criar a VM vc precisará criar um modelo, a ISO de sua VM deve ser salva em /var/lib/kimchi/isos/
Exemplo baixando a ISO do Debina 9.5 Netinst

# wget -q http://ftp.br.debian.org/debian-cd/current/amd64/iso-cd/debian-9.5.0-amd64-netinst.iso -O /var/lib/kimchi/isos/

A interface é bem intuitiva, acredito que não terá dificuldade.

Para ativar a inicialização automática de uma VM ou desabilitar use os comandos:

# virsh autostart NomeVM
# virsh autostart NomeVM --disable

Removendo Kimchi

# apt purge kimchi ginger-base build-essential nginx-full pep8 pyflakes python-requests python-mock wok libvirt* python-libvirt # qemu-*
# rm /var/lib/gingerbase/ -rf
# rm /var/lib/kimchi/ -rf
# rm /var/lib/libvirt/ -rf
# rm /etc/libvirt/ -rf
# apt autoremove

Curtiu? Deixe seu comentário ficarei feliz em saber que lhe ajudei, e se tiver qualquer pergunta deixe-a também.

Fontes:
https://github.com/kimchi-project/kimchi
https://github.com/kimchi-project/kimchi/issues

Rudimar Remontti

Trabalho atualmente como Gerente de Redes em um Provedor de Internet no Rio Grande do Sul.

Você pode gostar...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *