Difference between revisions of "Vnx-tutorial-ubuntu"

From VNX
Jump to: navigation, search
(Description)
(Description)
Line 6: Line 6:
 
VNX includes several example scenarios based on the [http://www.dit.upm.es/vnumlwiki/index.php/Tutorial VNUML tutorial scenario] but including all types of virtual machines supported by VNX. The scenario presented her is 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. All systems but h1 use an Ubuntu server root filesystem; h1 uses an Ubuntu Desktop one to allow starting a web navigator.
 
VNX includes several example scenarios based on the [http://www.dit.upm.es/vnumlwiki/index.php/Tutorial VNUML tutorial scenario] but including all types of virtual machines supported by VNX. The scenario presented her is 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. All systems but h1 use an Ubuntu server root filesystem; h1 uses an Ubuntu Desktop one to allow starting a web navigator.
  
<li> '''tutorial_root1-XXXX.xml''', which are virtual scenarios based on the </li>
 
<center>
 
 
[[File:Tutorial_ubuntu-map.png|center|thumb|600px|<div align=center>
 
[[File:Tutorial_ubuntu-map.png|center|thumb|600px|<div align=center>
 
'''Figure 1: tutorial_ubuntu scenario topology'''</div>]]
 
'''Figure 1: tutorial_ubuntu scenario topology'''</div>]]
</center>
 
  
 
== Starting the scenario ==
 
== Starting the scenario ==

Revision as of 14:19, 28 July 2011

VNX Tutorial Ubuntu


Description

VNX includes several example scenarios based on the VNUML tutorial scenario but including all types of virtual machines supported by VNX. The scenario presented her is 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. All systems but h1 use an Ubuntu server root filesystem; h1 uses an Ubuntu Desktop one to allow starting a web navigator.

Figure 1: tutorial_ubuntu scenario topology

Starting the scenario

Executing commands

Stopping the scenario

Other interesting options

tutorial_ubuntu.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; rm /tmp/vnx.*</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>

Mas cosas

sudo vnx -f simple_ubuntu-gui.xml -v --suspend -M ubuntu-gui
sudo vnx -f simple_ubuntu-gui.xml -v --resume -M ubuntu-gui

To start the web servers in h3 and h4:

sudo vnx -f tutorial_ubuntu.xml -v -x start-www

To start a firefox navigator and load main page of h3 web server:

sudo vnx -f tutorial_ubuntu.xml -v -x www-h3


Figure 1: tutorial_ubuntu scenario topology
Figure 1: tutorial_ubuntu screen capture

Tutorial_ubuntu-screen-capture.png


Tutorial scenarios (tutorial_root1_XXXX.xml)

  • To start the tutorial scenario with linux, FreeBSD, XP and Win7 virtual machines just type:
  • sudo vnx -f tutorial_root1_all.xml -v --create
    
  • Once the scenario has completely started (remenber that libvirt machines have to be restarted for the autoconfiguration to complete), you should see all the virtual machine consoles:
  • Vnx-tutorial root1 all-s.png

  • You can test the network connectivity, for example, accesing h1 machine and tracing to h4: traceroute -n 10.0.2.3
  • To stop and restart a virtual machine without loosing the modifications you have made you can type:: sudo vnx -f tutorial_root1_all.xml -v --shutdown -M uml4 sudo vnx -f tutorial_root1_all.xml -v --create -M uml4
  • The same but loosing the changes made and returning to a fresh virtual machine state: sudo vnx -f tutorial_root1_all.xml -v --destroy -M uml4 sudo vnx -f tutorial_root1_all.xml -v --create -M uml4