The rationale for this implementation was to reduce the barrier for project creation and facilitate ad hoc experimentation. It was my goal to make this minimally intimidating for inexperienced users.
A secondary goal was to make sure this would be as useful as possible for instructors and members who wanted to run in-house services. I thought it easiest if those who were less confident had a familiar interface and I didn't suspect anyone regardless of experience will be offended by a GUI, so I opted for a browser based system.
I did this through a management interface called Kimchi, which is a plugin for the wok webserver (Interacts with nginx). ginger is used as a plugin mgmt system. the whole thing is backed by KVM acting as a hypervisor. Here's a link of just the interface: https://raw.githubusercontent.com/kimchi-project/kimchi/master/docs/kimchi-templates.png
How does it work?
From the web interface, users can create VM's (guests) from template (Pre-made / provisioned VM's), monitor usage, and access the console. That means that any device that can run a web browser can in essence be used as a powerful server or specialized lab environment. This is good for classes, or designing your own services to run in the space.
Anyone on the UAS network can access the VM-lab.
These creds will allow you to use existing vm's
Alternatively, you can use your LDAP credentials.
If you want a specialized machine/template to clone later, ask flay</br>
Requesting a VM
Ask flay on slack and tell him exactly what you need. If you're not sure, explain your goal and he'll try to set it up. If you need something more complex feel free to ask for administrative access to make your own. Every student Guest (VM) will be set up via administrator-created template.
When creating a new Guest requiring internet access you'll have to add the "phybridge" device (located in kimchi under the admin account) you MUST do this after creating the guest. Create the guest, power it off, edit it, add the bridged adapter, restart. Then you can modify the device to assign a static ip. In the centOS minimal boxes this can be done via the respective /etc/sysconfig/network-scripts/ifcfg-eth file
Don't give Guests names which contain spaces. You'll get insane errors.
This is where all iso images go /var/lib/kimchi/iso's
This is where the XML templates are kept /etc/libvirt/qemu
Importing from OVA
OVA files are a common way to pass around VM's, but you cannot import them directly into a template.
- OVA files are actually archives, so the first step is to extract them (tar -xzf example.ova)
- Convert the virtual disk (.vmdk) into a qcow2 format using an invocation like: qemu-img convert -O qcow2 example.vmdk example.qcow2
- Document KVM architecture
- Configure Firewalld
- Document Kimchi startup procedure
- Create vmlab architecture diagram
- Set agenda for individual boxes & services plan
VMLABS physical Specs
MODEL:Dell Poweredge R710 OS:Ubuntu CentOS 7 LTS: 3.10.0-327.el7.x86_64
CPU: 2 x Intel Xeon x5560 (2.8GHZ) 
HDD: 1.4TB RAID: 6
For networking it's important to set up a route.
On Ubuntu hosts you must run ```ip route add default via 10.0.1.1 dev #interface_name```
Packages available on base vm
net-tools tmux vim