Hands on with UNetLab 1.0

UNetLab has just reached version 1.0 (stable). It’s actually 1.0.0-4 to be exact, and a lot has changed.

Installing the new version is no different to doing any Linux upgrade, however, I did encounter a problem:

[email protected]:~# apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 linux-image-virtual : Depends: linux-image-3.13.0-79-generic but it is not installed
E: Unmet dependencies. Try using -f.
[email protected]:~# apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
....
dpkg: error processing archive /var/cache/apt/archives/linux-image-3.13.0-79-generic_3.13.0-79.123_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-3.13.0-79-generic' to '/boot/vmlinuz-3.13.0-79-generic.dpkg-new': failed to write (No space left on device)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-79-generic /boot/vmlinuz-3.13.0-79-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-3.13.0-79-generic_3.13.0-79.123_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
[email protected]:~#

It looks like /boot is a bit low on space:

[email protected]:~# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-rootvol  185G  156G   22G  89% /
none                        4.0K     0  4.0K   0% /sys/fs/cgroup
udev                         20G  4.0K   20G   1% /dev
tmpfs                       4.0G  3.0M  4.0G   1% /run
none                        5.0M     0  5.0M   0% /run/lock
none                         20G     0   20G   0% /run/shm
none                        100M     0  100M   0% /run/user
/dev/sda1                   232M  218M     0 100% /boot
[email protected]:~#

Yep, no room left, so let’s make some space:

[email protected]:~# cd /boot/
[email protected]:/boot# rm -f initrd.img-3.13.0-61-generic
[email protected]:/boot# rm -f initrd.img-3.13.0-62-generic
[email protected]:/boot# rm -f initrd.img-3.13.0-63-generic
[email protected]:/boot# rm -f initrd.img-3.13.0-65-generic
ro[email protected]:/boot# rm -f initrd.img-3.13.0-66-generic
[email protected]:/boot# rm -f vmlinuz-3.13.0-61-generic
[email protected]:/boot# rm -f vmlinuz-3.13.0-62-generic
[email protected]:/boot# rm -f vmlinuz-3.13.0-63-generic
[email protected]:/boot# rm -f vmlinuz-3.13.0-65-generic
[email protected]:/boot# rm -f vmlinuz-3.13.0-66-generic
[email protected]:/boot# df -f
df: invalid option -- 'f'
Try 'df --help' for more information.
[email protected]:/boot# df -h
Filesystem                  Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-rootvol  185G  156G   22G  89% /
none                        4.0K     0  4.0K   0% /sys/fs/cgroup
udev                         20G   12K   20G   1% /dev
tmpfs                       4.0G  3.0M  4.0G   1% /run
none                        5.0M     0  5.0M   0% /run/lock
none                         20G     0   20G   0% /run/shm
none                        100M     0  100M   0% /run/user
/dev/sda1                   232M  137M   80M  64% /boot
[email protected]:/boot#

OK, that’s better. Let’s run the update:

[email protected]:/boot# apt-get install unetlab
Reading package lists... Done
Building dependency tree       
Reading state information... Done
...
Do you want to continue? [Y/n] Y
Get:1 http://www.unetlab.com/apt/ trusty/rrlabs unetlab amd64 1.0.0-4 [9,921 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ trusty/main libaio1 amd64 0.3.109-4 [6,364 B]
Get:3 http://us.archive.ubuntu.com/ubuntu/ trusty/main telnet amd64 0.17-36build2 [67.1 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu/ trusty-updates/main python3-pexpect all 3.1-1ubuntu0.1 [37.9 kB]
Fetched 10.0 MB in 5s (1,739 kB/s)         
...
Setting up python3-pexpect (3.1-1ubuntu0.1) ...
Setting up unetlab (1.0.0-4) ...
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
Processing triggers for initramfs-tools (0.103ubuntu4.2) ...
update-initramfs: Generating /boot/initrd.img-3.16.7-ckt8-unetlab
[email protected]:/boot#

I always like to reboot at this point, but you don’t have to. So let’s see what we have now!

The status page has a few changes, we now have a POD number (for multi-user), and we can see the UNetLab version and the Qemu version:

UNetLab hands-on 1

The usage indicators in the middle also update every few seconds, which is kind of useful.

If we look at the Users tab, we can see the default user, and what (if any) lab they are running:

UNetLab Hands-on 2

Using the Actions menu, we can create a new user:

UNetLab hands-on 3
UNetLab hands-on 4
UNetLab hands-on 5
So, now you can have a pretty decent UNetLab server catering for a large number of users, and each can run their own lab. Pretty neat!

So, let’s move onto the labs and see what’s changed there.
It’s all changed:
UNetLab hands-on 6

We have lost the menu at the topĀ and gained one at the side. From the top down we can add new things, such as networks, node, pictures, and now shapes and text:

UNetLab hands-on 7
UNetLab hands-on 8

Beneath this, we have the lab details, and then an icon for the nodes:

UNetLab hands-on 9

If you have ever used Web-IOU then you’ll be familiar with the icons at the right-hand side to stop, start and reload devices.

We then have the networks icon, and then one for startup configs:

UNetLab hands-on 10

We then have icons for configuring pictures and text objects, and then one for “more actions”:

UNetLab hands-on 11

We then can refresh the topology, and then there is an icon for free select. The major change is that we can now edit the topology and use it from within the same page, no more switching modes, which is so much better. However, if you do click on the free select icon, then you will need to click on it again to de-select it if you want to do anything with the nodes.

Speaking of the nodes, the right click menu has changed here as well:

UNetLab hands-on 12

UNetLab hands-on 13

Notice how the Manage menu minimizes when we click on the Capture menu, this is a nice feature especially if you don’t have the largest of displays.

Lastly, we have a quick access button for the system status, we can close the lab, or log out completely.

It’s much smoother, and configurable now. The addition of custom objects makes making labs much nicer (along with the fact that objects line up perfectly now! Now we can have nicely annotated labs:

UNetLab hands-on 14

It would be nice to be able to join objects (such as a square box and the text object within it), but this is a minor issue.

It is clear that a lot of thought has gone into this major release, it is fluid, sharp, and a pleasure to work with.

You can even create your own nodes, like a multicast server!

4 Comments

  1. Tural Ismayilov April 15, 2016
  2. Stuart Fordham April 15, 2016
  3. Tural Ismayilov April 19, 2016
  4. Stuart Fordham April 19, 2016

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.