Difference between revisions of "Vnx-tutorial-ubuntu"

From VNX
Jump to: navigation, search
(Mas cosas)
(Description)
Line 4: Line 4:
 
== Description ==
 
== Description ==
  
VNX includes several example scenarios based on the  
+
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.
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.    
 
  
 +
<li> '''tutorial_root1-XXXX.xml''', which are virtual scenarios based on the </li>
 
<center>
 
<center>
 
[[File:Tutorial_ubuntu-map.png|center|thumb|600px|<div align=center>
 
[[File:Tutorial_ubuntu-map.png|center|thumb|600px|<div align=center>

Revision as of 14:18, 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.

  • tutorial_root1-XXXX.xml, which are virtual scenarios based on the
  • 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