[[PageOutline]] = I. Single Node Software Installation and Custom Images = This experiment is step 1 in the multi-part tutorial on [wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy Systematic Experimental Design]. The Systematic Experimental Design approach follows this sequence: {{{ #!html
Image Map
}}} The goal is to setup a layer-3 virtual network with multiple virtual routers. Hence, the first step is to install the routing software. There are various options, such as [http://www.xorp.org `XORP`] and [http://www.quagga.net `Quagga`]. In this tutorial, we will install XORP to enable routing functionalities on nodes. Sometimes it may take a long time to install software on a node, so it is always good to start with one node to test out the whole installation process. The figure below provides an overview of the software installation to a VM. This process turns a generic VM into a software router. [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:softwareinstall-flow.png)]] = 1. Reserve a VM with a Standard Image = Assume we have a slice created already. We want to reserve a Xen VM running a standard Ubuntu image as the basis of the software router. == a. Select a VM from an InstaGENI Site == Once you have created an image select the ''' ''Add Resources'' ''' button to reserve a virtual machine. [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:AddResources.jpg,60%)]] In the resulting "Add Resources" panel, drag and drop a Xen VM: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:DragXen.jpg,60%)]] Now click on "Site 1" to select an InstaGENI aggregates, this will show the available sites in the left hand actions: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:SelectSite.jpg,60%)]] We will choose the InstaGENI aggregate Kentucky PKS2: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:ClemsonSite.jpg,60%)]] {{{ #!html
Note Please go to HowToReserveVM for details on how to reserve a VM from an aggregate.
}}} == b. Select a Standard Images == Click on the node to show the left-hand options panel that allows image selection. Click on `Disk Image` pull-down to see available standard images: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:SelectDefaultImage.jpg,60%)]] Select '''Ubuntu 12.04 LTS'''. You are now ready to reserve the VM, which is done by scrolling to the bottom of the `Add Resources` page and clicking on the ''' ''Reserve Resources'' ''' button: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:ReserveResources.jpg)]] Once selected, the results section will be updated to show the status for the request as it progresses: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:CreateStatus.jpg,60%)]] == c. Login to the VM == Once the VM sliver creation is completed, you can get status in slice page: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:SliverStatus.jpg,60%)]] The resources are shown as green when ready. You are able to login to the node from a terminal using `ssh`. {{{ ssh username@hostname -p xxxxx }}} {{{ #!html
Note You can find information on how to login to GENI hosts from HowToLogin.
}}} = 2. Customize Your VM = In this tutorial we will install `XORP 1.8.5` on `Ubuntu 12.04` with the following steps: * Install Dependencies {{{ sudo apt-get update sudo apt-get install libssl-dev sudo apt-get install ncurses-dev sudo apt-get install libpcap-dev sudo apt-get install g++ traceroute sudo apt-get install scons }}} * Download XORP source files {{{ cd wget http://www.xorp.org/releases/current/xorp-1.8.5-src.tar.bz2 tar jvxf xorp-1.8.5-src.tar.bz2 }}} * Compile and build `XORP` {{{ cd xorp scons sudo scons install }}} * Verify the `XORP` installation (Optional) {{{ scons check }}} The `xorp` installation takes ~40 minutes to complete. If you choose to run rhe `scons check` it will take an additional hour to complete. Once completed you will find the directory `xorp` under path `/usr/local/` directory {{{ #!html
Note To install other version of XORP, please check the XORP Official Website for details on the dependencies and installation instructions.
}}} = 3. Create a Custom Image = From the manual installation procedure to customize the VM, we learned that it is not efficient to manually install `XORP` on multiple VMs. An alternative approach is to create a custom image of `Ubuntu 12.04 LTS` with `XORP` pre-installed and save this custom image for future usage. You can create InstaGENI custom images in the Slice page by selecting the ''' ''Snapshot'' ''' button: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:snapshot.jpg)]] Choose a custom image name that reflects its content and whether the image is visible to other GENI Users. Also note that the image name MUST include alphanumeric characters only. [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:CustomName.jpg,60%)]] Click on the ''' ''Create'' ''' button and you will get an update on the same page capturing image information : [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:ImageInfo.jpg,60%)]] The custom image is typically available within 10 minutes of the creation time. There is also an email notification for the image creation completion, but the notification email tend to be quarantined to IT mail systems. {{{ #!html
Note The custom image with XORP pre-installed is available for use by any InstaGENI aggregate by using the URL above. This will allow you to skip the customization in Step 2 when using this newly defined custom image.
}}} Further details can be found at [http://groups.geni.net/geni/wiki/HowTo/ManageCustomImagesInstaGENI ManageCustomImageInstaGENI]. If your are going to use the same slice and aggregate in the next step, now it's time to release the Xen VM resource in the ''' ''Slices'' ''' panel: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:DeleteSliver.jpg,60%)]] If you are using Omni: {{{ $ omni.py -a deletesliver }}} = 4. Verify InstaGENI Custom Image = Now let's load the custom image created in Step 3 by requesting a new VM that uses that image: * Select the ''' ''Slice'' ''' panel and then click on ''' ''Add Resources'' ''' button. * Drag and drop a ''Xen VM'' node type to the canvas. * Select the site ''Kentucky PKS2 InstaGENI'' * Click on the node and then in the left-hand panel select the ''Disk Image'' pull-down and choose ''Other''. * In the URN slot paste you image URN, in our example the image URN is "urn:publicid:IDN+pks2.sdn.uky.edu+image+ch-geni-net:Ubuntu12Xorp" [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:ImageURN.jpg, 60%)]] * Scroll down to the bottom of the Add Resources panel and click on the ''' '' Reserve Resources'' ''' button. * Go back to the Slice panel to moniror polling of the resource, which will take place every 5 seconds until the resource is ready. Once the VM is ready to login, we can verify the XORP installation. {{{ lnevers@node-0:~$ cd /usr/local/xorp/sbin/ lnevers@node-0:/usr/local/xorp/sbin$ ls bgp_xrl_shell_funcs.sh fea_xrl_shell_funcs.sh xorp_profiler xorpsh call_xrl rib_xrl_shell_funcs.sh xorp_rtrmgr lnevers@node-0:/usr/local/xorp/sbin$ }}} = 5. Cleanup the Slice = After verifying the `XORP` installation, you can release the Xen VM resource in the ''' ''Slices'' ''' panel: [[Image(GENIExperimenter/Tutorials/SystematicExprCaseStudy/InstallSoftware:DeleteSliver.jpg,60%)]] If you are using Omni: {{{ $ omni.py -a deletesliver }}} '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy Overview]''' '''[wiki:GENIExperimenter/Tutorials/SystematicExprCaseStudy/SmallTopo Step II: Small Topology]'''