Difference between revisions of "Vnx-examples"

From VNX
Jump to: navigation, search
(Starting simple scenarios)
(Starting simple scenarios)
Line 72: Line 72:
 
<center>
 
<center>
 
[[File:simple-ubuntu-gui.png|center|thumb|400px|<div align=center>
 
[[File:simple-ubuntu-gui.png|center|thumb|400px|<div align=center>
'''Graphical and textual consoles of simple_ubuntu-gui scenario''']]
+
'''Graphical and textual consoles of simple_ubuntu-gui scenario'''</div>]]
 
</center>
 
</center>
 
 
  
 
Beware that, once the virtual machine has completely started, the VNX autoconfiguration daemon (VNXACED) has to do its job configuring the name and the network interfaces parameters and restarting the machine for the changes to take effect. After the restart, the virtual machine is ready to be used.
 
Beware that, once the virtual machine has completely started, the VNX autoconfiguration daemon (VNXACED) has to do its job configuring the name and the network interfaces parameters and restarting the machine for the changes to take effect. After the restart, the virtual machine is ready to be used.

Revision as of 15:41, 27 July 2011

VNX Simple Scenarios

Description

Several simple example scenarios are included in VNX distribution to allow testing the tool functionalities with the different types of virtual machines supported (see /usr/share/vnx/examples/simple_*.xml files).

Each simple scenario includes just one virtual machine connected to a virtual network (Net0, 10.0.0.0/24), where the hosts has also a virtual network interface connected (10.0.0.1).

The simple scenarios are prepared to be started and tested individually or to be started all together to form the compound scenario shown in Figure 1.

Figure 1: simple scenarios topology

The following simple scenarios are available:

Scenario file name Description VM ip address
simple_uml.xml Just one User Mode Linux (UML) Debian system 10.0.0.2
simple_winxp.xml Just one KVM Windows XP system 10.0.0.3
simple_ubuntu.xml Just one KVM Ubuntu system without GUI 10.0.0.4
simple_ubuntu-gui.xml Just one KVM Ubuntu system with minimal GNOME GUI 10.0.0.5
simple_freebsd.xml Just one KVM FreeBSD system without GUI 10.0.0.6
simple_freebsd-gui.xml Just one KVM FreeBSD system with minimal GNOME GUI 10.0.0.7
simple_win7.xml Just one KVM Windows 7 system 10.0.0.8
simple_fedora.xml Just one KVM Fedora system without GUI 10.0.0.9
simple_fedora-gui.xml Just one KVM Fedora system with a GNOME GUI 10.0.0.10
simple_dynamips.xml Just one Dynamips emulated CISCO 3600 router 10.0.0.11
simple_dynamips2.xml Just one Dynamips emulated CISCO 7200 router 10.0.0.12
simple_olive.xml Just one Olive emulated Juniper router 10.0.0.13
simple_centos.xml Just one KVM CentOS system without GUI 10.0.0.15
simple_centos-gui.xml Just one KVM CentOS system with a GNOME GUI 10.0.0.16

All scenarios are available in /usr/share/vnx/examples directory. See, for example, the content of simple_ubuntu-gui.xml scenario at the end of this page

Starting simple scenarios

You can start VNX scenarios either from a local shell window or remotely using an SSH session with X-forwarding enabled. For example, if you connect to the VNX host from a Unix or MacOS system you can use:

  ssh -X <vnx-host-address-or-name>

If you connect from another system, just investigate how to configure your SSH client to do X-forwarding (most of them include it).

In case of remote connections, it is recommended to test that X-forwarding is working by launching a "xterm" or "xeyes" application and checking that the application window is correctly launched. Beware that X-forwarding is very bandwidth consuming, so you will need a good connectivity between your system and the host were VNX runs.

As VNX needs root priviledges, you have to be root in the shell window or, alternatively, if your account is allowed to "sudo" root (as typically is, for example, in Ubuntu systems), just precede vnx commands with "sudo", as shown below.

To start, for example, the simple_ubuntu-gui scenario:

cd /usr/share/vnx/examples/
sudo vnx -f simple_ubuntu-gui.xml -v --create

You will see the two virtual machine consoles opening: the graphical one showing the gnome desktop and the text console.

Graphical and textual consoles of simple_ubuntu-gui scenario

Beware that, once the virtual machine has completely started, the VNX autoconfiguration daemon (VNXACED) has to do its job configuring the name and the network interfaces parameters and restarting the machine for the changes to take effect. After the restart, the virtual machine is ready to be used.



For example, to start an XP virtual machine type:

sudo vnx -f /usr/share/vnx/examples/simple_xp.xml -v --create

Just after the execution, you will see the console of the Windows XP machine starting. Once the machine has completely started, the VNX autoconfiguration daemon will configure its name and the network interfaces and restart the machine for the changes to take effect. After the restart, the virtual machine will be available for interacting with it.

Note: virt-viewer console application "captures" the mouse when interacting with the virtual machines. You have to type "Ctrl-Alt" to release the mouse.

  • Once started, you can test the network connectivity form the host to the virtual machine:
    root@tutatis:/usr/share/vnx/examples# ping -c 4 10.0.0.3
    PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data.
    64 bytes from 10.0.0.3: icmp_seq=1 ttl=128 time=0.312 ms
    64 bytes from 10.0.0.3: icmp_seq=2 ttl=128 time=0.376 ms
    64 bytes from 10.0.0.3: icmp_seq=3 ttl=128 time=0.249 ms
    64 bytes from 10.0.0.3: icmp_seq=4 ttl=128 time=0.260 ms
    
    --- 10.0.0.3 ping statistics ---
    4 packets transmitted, 4 received, 0% packet loss, time 2999ms
    rtt min/avg/max/mdev = 0.249/0.299/0.376/0.051 ms
    
  • You can also execute commands on the virtual machine from the host. For example, you can start the calculator on the Windows XP machine by issuing:
  • sudo vnx -f /usr/share/vnx/examples/simple_xp.xml -v --exe calc
    

    This command has been specified inside the simple_xp.xml file in the line:

    <exec seq="calc" type="verbatim" mode="system">calc.exe</exec>
    

    Note: the previous command does not end till you close the calc application.

    You can also copy a text file from the host to the virtual machine and show it using Notepad by issuing:

    sudo vnx -f /usr/share/vnx/examples/simple_xp.xml -v --exe vnxtxt
    

    This command is specified using the following two lines:

    <filetree seq="vnxtxt" root="c:\temp">conf/txtfile</filetree>
    <exec seq="vnxtxt" type="verbatim" mode="system">start /max notepad c:\temp\vnx.txt</exec>
    
  • You can start a Linux Ubuntu server with:
  • sudo vnx -f /usr/share/vnx/examples/simple_ubuntu.xml -v --create
    

    And start a web server inside it with:

    sudo vnx -f /usr/share/vnx/examples/simple_ubuntu.xml -v --exe start-www
    

    And test the web server access from the XP virtual machine by manually opening a web navigator and loading URL http://10.0.0.4.

    Vnx-simple xp.png

  • You can find more example commands by having a look at <exec> and <filetree> tags in simple_XXXX.xml files.
  • To stop the scenario preserving the changes made:
  • sudo vnx -f /usr/share/vnx/examples/simple_xp.xml -v --shutdown
    

    You can later restart the scenario with:

    sudo vnx -f /usr/share/vnx/examples/simple_xp.xml -v --create
    
  • To stop the scenario discarding the changes made:
  • sudo vnx -f /usr/share/vnx/examples/simple_xp.xml -v --destroy
    

    </ul>

    Other interesting options

    You can see a graphical map of the virtual scenario using the --show-map option:

     sudo vnx -f tutorial_root1_all.xml -v --show-map
    

    simple_ubuntu-gui.xml scenario

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!--
    
    ~~~~~~~~~~~~~~~~~~~~
    VNX Sample scenarios
    ~~~~~~~~~~~~~~~~~~~~
    
    Name:        simple_ubuntu-gui
    Description: Just one Ubuntu virtual machine with GUI connected to a Network named Net0 with address 10.0.0.5. 
                 The host has an interface in Net0 with address 10.0.0.1  
                 This simple scenario is supposed to be used for testing the different 
                 types of virtual machines supported by VNX. You can start several simple_*.xml
                 scenarios and test the connectivity among virtual machines and the host, as all
                 scenarios share the same "Net0" network.  
    
    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>simple_ubuntu-gui</scenario_name>
        <automac offset="5"/>
        <vm_mgmt type="none" />
        <vm_defaults>
    	    <console id="0" display="yes"/>
    	    <console id="1" display="yes"/>
        </vm_defaults>
      </global>
        
      <net name="Net0" mode="virtual_bridge" />
      
      <!-- NODES -->
      <vm name="ubuntu-gui" type="libvirt" subtype="kvm" os="linux">
        <filesystem type="cow">/usr/share/vnx/filesystems/rootfs_ubuntu-gui</filesystem>
        <mem>512M</mem>
        <if id="1" net="Net0">
          <ipv4>10.0.0.5/24</ipv4>
        </if>
        <filetree seq="vnxtxt" root="/tmp">conf/txtfile</filetree>
        <filetree seq="vnxwww" root="/tmp">conf/txtfile</filetree>
        <filetree seq="start-www" root="/var/www">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 load vnx.html, copied by means of a <filetree> -->
        <exec seq="vnxwww"    type="verbatim" ostype="system">chmod 666 /tmp/vnx.html</exec>
        <exec seq="vnxwww"    type="verbatim" ostype="xexec">firefox /tmp/vnx.html</exec>
        <exec seq="vnxwwwoff" 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>
    
        <!-- Start/stop apache www server -->
        <exec seq="start-www" type="verbatim" ostype="system">service apache2 start</exec>
        <exec seq="stop-www"  type="verbatim" ostype="system">service apache2 stop</exec>
        <exec seq="start-www2" type="verbatim" ostype="exec">service apache2 start</exec>
        
        <exec seq="ping"      type="verbatim" ostype="system">'ping 10.0.0.1'</exec>
        <exec seq="showlog"   type="verbatim" ostype="system">tail -f /var/log/vnxaced.log</exec>
        <exec seq="start-www" type="verbatim" ostype="system">chmod 644 /var/www/*</exec>
    
      </vm>
    
      <host>
        <hostif net="Net0">
           <ipv4>10.0.0.1/24</ipv4>
        </hostif>
      </host>
      
    </vnx>