Your own personal IaaS cloud
Vmango is a virtual machines management web interface written using Go.
The main goal of project is not to provide a hypervisor configuration tool,
because that problem already solved by many configuration management systems
like Ansible or Puppet, but provide a convenient way to manage virtual
machines on existing hypervisors.
Current features:
There are two RPM repositories:
vmango
for the latest tagged release, it may be considered stablevmango-devel
contains packages built automatically from the latest commit in master branchsubuk/vmango-devel
for the latest version, subuk/vmango
for stable/etc/vmango.conf
vmango
yum install -y yum-plugin-copr && yum copr -y enable subuk/vmango
yum install -y vmango
systemctl enable --now vmango
/etc/vmango.conf
sudo add-apt-repository ppa:subuk/vmango
sudo apt-get install vmango
Install libvirt and qemu-kvm.
Ubuntu:
sudo apt-get install libvirt-bin qemu-kvm qemu-system
Centos:
yum install -y libvirt qemu-kvm
systemctl enable --now libvirtd
Allow your user to access libvirt socket:
sudo usermod -aG libvirtd [username]
newgrp libvirtd
Download vm images to default libvirt pool location:
cd /var/lib/libvirt/images/
wget https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1901.qcow2
wget https://cloud-images.ubuntu.com/minimal/releases/bionic/release/ubuntu-18.04-minimal-cloudimg-amd64.img
Define default volume pool (if not exists) and start it:
virsh pool-define-as default dir --target /var/lib/libvirt/images/
virsh pool-start default
virsh pool-autostart default
Copy vmango.dist.conf to vmango.conf and change configuration if needed.
Run app
make && ./bin/vmango web
View it on http://localhost:8080 (login with admin / admin by default)
Install libvirt and kvm
sudo apt-get install libvirt-dev libvirt-bin qemu-kvm qemu-system genisoimage
Install Go compiler.
Configure libvirt as described above.
Now you can use your own computer as hypervisor.
Install Go compiler, libvirt C library and mkisofs util (for configdrive creation)
brew install go
brew install libvirt
brew install dvdrtools
You need a linux hypervisor somewhere in the world, because libvirt doesn’t support MacOS.
Make sure to add ?socket option to remote libvirt urls.
With docker for Centos 7:
./dockerbuild.sh centos-7 make rpm
Locally:
make rpm
With docker for Ubuntu 18.04:
./dockerbuild.sh ubuntu-1804 make deb
Locally:
make deb