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
1 |
vim /etc/apt/sources.list |
1 2 3 4 5 6 7 8 9 |
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 |
Atualize o repositório e instale as atualizações.
1 |
apt update ; apt upgrade -y |
Instale os pacotes necessários.
1 |
# apt install firmware-linux-nonfree firmware-realtek nginx-full build-essential |
Reinicie para que o novo modulo do kernel seja interpretado.
1 |
reboot |
Baixe os pacotes necessários. (https://github.com/kimchi-project/kimchi/releases/latest)
1 2 3 4 5 |
# 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
1 2 3 |
# 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,”
1 |
vim controll |
Altere
libvirt-bin,
Por:
libvirt-daemon-system,
libvirt-dev,
libvirt-clients,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
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
1 |
# vim controll.in |
Agora vamos empacota-lo novamente com o nome kimchi-2.5.0-0.deb9.noarch.deb
1 2 3 4 |
# 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
1 |
# ls -lh |
Vamos a instalação dos nossos arquivos .deb
1 2 3 |
# 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)
1 |
# vim /usr/lib/python2.7/dist-packages/wok/plugins/kimchi/model/templates.py |
Remova a linha com “–” e adiciona a com “+“.
1 2 3 4 5 6 7 8 9 |
[...] - -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
1 |
# 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
1 |
# 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:
1 2 |
# virsh autostart NomeVM # virsh autostart NomeVM --disable |
Removendo Kimchi
1 2 3 4 5 6 |
# 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
Como eu posso fazer a instalação do Kimchi/Wok no Debian 10? O tutorial acima não está funcionando para a nova versão do Debian