Vnx-tutorial-dynamips
VNX Tutorial Ubuntu
(Work in progress....)
Contents
[hide]Description
VNX includes several example scenarios based on the VNUML tutorial scenario but including all types of virtual machines supported by VNX (see tutorial_*.xml files in /usr/share/vnx/examples directory).
The scenario presented here is made of 4 Ubuntu virtual machines (h1, h2, h3 and h4) and 2 dynamips virtual routers (r1 and r2) connected through three virtual networks. The host participates in the scenario having a network interface in Net3. All hosts use an Ubuntu server root filesystem.
Starting the scenario
Start the scenario with:
cd /usr/share/vnx/examples/ sudo vnx -f tutorial_ubuntu-dynamips.xml -v --create
You will see the six virtual machine textual consoles opening.
If you close a host or router console, you can reopen it with:
sudo vnx -f tutorial_ubuntu-dynamips.xml -v --console con1 -M <vmname>
being <vmname> the name of the virtual machine.
You can also open the consoles manually with the commands shown at the end of vnx execution:
---------------------------------------------------------------------------------- Scenario "tutorial-r1_all" started VM_NAME | TYPE | CONSOLE ACCESS COMMAND ----------------------------------------------------------------------------------------- h1 | libvirt-kvm-linux | con0: 'virt-viewer -c qemu:///system h1' or 'vncviewer :0' | | con1: 'virsh -c qemu:///system console h1' or 'screen /dev/pts/4' ----------------------------------------------------------------------------------------- h2 | libvirt-kvm-linux | con0: 'virt-viewer -c qemu:///system h2' or 'vncviewer :1' | | con1: 'virsh -c qemu:///system console h2' or 'screen /dev/pts/6' ----------------------------------------------------------------------------------------- r1 | dynamips-3600 | con1: 'telnet localhost 12000' ----------------------------------------------------------------------------------------- r2 | dynamips-3600 | con1: 'telnet localhost 12002' ----------------------------------------------------------------------------------------- h3 | libvirt-kvm-linux | con0: 'virt-viewer -c qemu:///system h3' or 'vncviewer :2' | | con1: 'virsh -c qemu:///system console h3' or 'screen /dev/pts/10' ----------------------------------------------------------------------------------------- h4 | libvirt-kvm-linux | con0: 'virt-viewer -c qemu:///system h4' or 'vncviewer :3' | | con1: 'virsh -c qemu:///system console h4' or 'screen /dev/pts/12' -----------------------------------------------------------------------------------------
You can show the previous table at any time with:
sudo vnx -f tutorial_ubuntu-dynamips.xml -v --console-info
See VNX Console Management for more details.
Executing commands
Stopping the scenario
To stop the scenario preserving the changes made inside virtual machines you have to use the "-d" or "--shutdown" option:
sudo vnx -f simple_ubuntu-gui.xml -v --shutdown
You can later restart the scenario with:
sudo vnx -f simple_ubuntu-gui.xml -v --create
To stop the scenario discarding all the changes made in the virtual machine use the "-P" or "--destroy" option:
sudo vnx -f simple_ubuntu-gui.xml -v --destroy
Other interesting options
You can restart the virtual machines individually with:
sudo vnx -f tutorial_ubuntu-dynamips.xml -v --shutdown -M h1 sudo vnx -f tutorial_ubuntu-dynamips.xml -v --create -M h1
You can suspend and restore a virtual machine with:
sudo vnx -f simple_ubuntu-gui.xml -v --suspend -M h1 sudo vnx -f simple_ubuntu-gui.xml -v --resume -M h1
You can see a graphical map of the virtual scenario using the --show-map option:
sudo vnx -f tutorial_ubuntu-dynamips.xml -v --show-map
tutorial_ubuntu-dynamips.xml scenario
<?xml version="1.0" encoding="UTF-8"?> <!-- ~~~~~~~~~~~~~~~~~~~~ VNX Sample scenarios ~~~~~~~~~~~~~~~~~~~~ Name: tutorial_ubuntu Description: A simple tutorial scenario made of 6 Ubuntu virtual machines (4 hosts: h1, h2, h3 and h4; and 2 routers: r1 and r2) connected through three virtual networks. The host participates in the scenario having a network interface in Net3. This file is part of the Virtual Networks over LinuX (VNX) Project distribution. (www: http://www.dit.upm.es/vnx - e-mail: vnx@dit.upm.es) Departamento de Ingenieria de Sistemas Telematicos (DIT) Universidad Politecnica de Madrid SPAIN --> <vnx xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="/usr/share/xml/vnx/vnx-2.00.xsd"> <global> <version>2.0</version> <scenario_name>tutorial_ubuntu</scenario_name> <automac/> <vm_mgmt type="none" /> <vm_defaults> <console id="0" display="no"/> <console id="1" display="yes"/> </vm_defaults> </global> <net name="Net0" mode="virtual_bridge" /> <net name="Net1" mode="virtual_bridge" /> <net name="Net2" mode="virtual_bridge" /> <net name="Net3" mode="virtual_bridge" /> <vm name="h1" type="libvirt" subtype="kvm" os="linux"> <filesystem type="cow">/usr/share/vnx/filesystems/rootfs_ubuntu-gui</filesystem> <mem>384M</mem> <console id="0" display="yes"/> <console id="1" display="no"/> <if id="1" net="Net0"> <ipv4>10.0.0.2/24</ipv4> </if> <route type="ipv4" gw="10.0.0.1">default</route> <filetree seq="vnxtxt" root="/tmp">conf/txtfile</filetree> <!-- Start xeyes application --> <exec seq="xeyes" type="verbatim" ostype="xexec">xeyes</exec> <!-- Start xeyes application and wait until it is closed --> <exec seq="xeyes2" type="verbatim" ostype="xsystem">xeyes</exec> <!-- Start gedit, maximize the window and show a text file --> <exec seq="vnxtxt" type="verbatim" ostype="system">chmod 666 /tmp/vnx.txt</exec> <exec seq="vnxtxt" type="verbatim" ostype="xexec">gedit /tmp/vnx.txt</exec> <exec seq="vnxtxt" type="verbatim" ostype="xexec">sleep 3; wmctrl -r vnx.txt -b add,maximized_vert,maximized_horz</exec> <exec seq="vnxtxtoff" type="verbatim" ostype="system">pkill gedit; rm /tmp/vnx.*</exec> <!-- Start firefox and connect to h3 web server --> <exec seq="www-h3" type="verbatim" ostype="xexec">firefox http://10.0.2.2</exec> <exec seq="www-h3-off" type="verbatim" ostype="system">pkill firefox</exec> <!-- Start calculator --> <exec seq="calc" type="verbatim" ostype="xexec">gcalctool</exec> <exec seq="calcoff" type="verbatim" ostype="system">pkill gcalctool</exec> </vm> <vm name="h2" type="libvirt" subtype="kvm" os="linux"> <filesystem type="cow">/usr/share/vnx/filesystems/rootfs_ubuntu</filesystem> <mem>128M</mem> <if id="1" net="Net0"> <ipv4>10.0.0.3/24</ipv4> </if> <route type="ipv4" gw="10.0.0.1">default</route> </vm> <vm name="r1" type="libvirt" subtype="kvm" os="linux"> <filesystem type="cow">/usr/share/vnx/filesystems/rootfs_ubuntu</filesystem> <mem>128M</mem> <if id="1" net="Net0"> <ipv4>10.0.0.1/24</ipv4> </if> <if id="2" net="Net1"> <ipv4>10.0.1.1/24</ipv4> </if> <if id="3" net="Net3"> <ipv4>10.0.3.1/24</ipv4> </if> <route type="ipv4" gw="10.0.1.2">10.0.2.0/24</route> <forwarding type="ip" /> </vm> <vm name="r2" type="libvirt" subtype="kvm" os="linux"> <filesystem type="cow">/usr/share/vnx/filesystems/rootfs_ubuntu</filesystem> <mem>128M</mem> <if id="1" net="Net1" name="s1/0"> <ipv4>10.0.1.2/24</ipv4> </if> <if id="2" net="Net2" name="e0/0"> <ipv4>10.0.2.1/24</ipv4> </if> <route type="ipv4" gw="10.0.1.1">default</route> <forwarding type="ip" /> </vm> <vm name="h3" type="libvirt" subtype="kvm" os="linux"> <filesystem type="cow">/usr/share/vnx/filesystems/rootfs_ubuntu</filesystem> <mem>128M</mem> <if id="1" net="Net2"> <ipv4>10.0.2.2/24</ipv4> </if> <route type="ipv4" gw="10.0.2.1">default</route> <!-- Copy the files under conf/tutorial_ubuntu/h3 to vm /var/www directory --> <filetree seq="start-www" root="/var/www">conf/tutorial_ubuntu/h3</filetree> <!-- Start/stop apache www server --> <exec seq="start-www" type="verbatim" ostype="system">chmod 644 /var/www/*</exec> <exec seq="start-www" type="verbatim" ostype="system">service apache2 start</exec> <exec seq="stop-www" type="verbatim" ostype="system">service apache2 stop</exec> </vm> <vm name="h4" type="libvirt" subtype="kvm" os="linux"> <filesystem type="cow">/usr/share/vnx/filesystems/rootfs_ubuntu</filesystem> <mem>128M</mem> <if id="1" net="Net2"> <ipv4>10.0.2.3/24</ipv4> </if> <route type="ipv4" gw="10.0.2.1">default</route> <!-- Copy the files under conf/tutorial_ubuntu/h4 to vm /var/www directory --> <filetree seq="start-www" root="/var/www">conf/tutorial_ubuntu/h4</filetree> <!-- Start/stop apache www server --> <exec seq="start-www" type="verbatim" ostype="system">chmod 644 /var/www/*</exec> <exec seq="start-www" type="verbatim" ostype="system">service apache2 start</exec> <exec seq="stop-www" type="verbatim" ostype="system">service apache2 stop</exec> </vm> <host> <hostif net="Net3"> <ipv4>10.0.3.2/24</ipv4> </hostif> <route type="ipv4" gw="10.0.3.1">10.0.0.0/16</route> </host> </vnx>