wiki:GIR3.2_LAMP

LAMP Evaluation

The Leveraging and Abstracting Measurements with perfSONAR (LAMP) Evaluation was based on instruction found at the LAMP I&M System Tutorial page. No versioning was available for either of the two scripts available for download, lamp-getcertificate.py and lamp-sendmanifest.py.

Evaluation Time Frame: November 16 and 22 2011

LAMP GENI Findings

Several issues were found including:

  • There is no versioning in the tools attached on the tutorial page.
  • The lamp-sendmanifest.py script which is attached to the LAMP tutorial page has problems uploading manifests for RSpec v0.2.
  • Error handling for failed manifest upload is not obvious and it is difficult to tell that a failure has occurred.
  • Updating the bundle cert on the lamp server is not documented in tutorial, and should be documented with the perfSONAR process (psconfig) restart requirements.
  • Renewing a slice requires for this entire LAMP process to be re-executed. If missed, data and configurations are lost.
  • Ran into intermittent access issue for the UNIS server.

LAMP How-to

Using instructions from the LAMP I&M System Tutorial page, downloaded the 2 LAMP scripts and the required ProtoGENI Test script a these locations:

Unpacked the protogeni-test tools and placed the two lamp scripts in the same directory as the ProtoGENI tests.

1. Create Slice Set up a ProtoGENI slice to be used in this experiment. This example uses the Omni tool in the GCF package, rather than the suggested ProtoGENI Test tools.

$ cd ~/gcf-1.4
$ ./src/omni.py createslice lnevers-lamp-slice1
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
INFO:omni:Created slice with Name lnevers-lamp-slice1, URN urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1, Expiration 2011-11-17 00:09:25+00:00
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createslice:
  Options as run:
                framework: pg
                native: True
  Args: createslice lnevers-lamp-slice1
  Result Summary: Created slice with Name lnevers-lamp-slice1, URN urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1, Expiration 2011-11-17 00:09:25+00:00
 INFO:omni: ============================================================

2. Add LAMP Resources Using the above RSpec created a sliver that uses the required LAMP image named UBUNTU91-LAMP.

Modified the LAMP example RSpec provided in the tutorial to include my slice and my user information. A file named lamp.rspec was created containing the following:

<rspec xmlns="http://protogeni.net/resources/rspec/0.2" 
   xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">
   
   <node virtual_id="node1" virtualization_type="raw" exclusive="1"
      startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers">

      <node_type type_name="pc" type_slots="1"/>

      <disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP" />
      
      <lamp:config />
      
      <interface virtual_id="iface0"/>
   </node>
   
   <node virtual_id="node2" virtualization_type="raw" exclusive="1"
      startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers">

      <node_type type_name="pc" type_slots="1"/>
      <disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP" />
      <lamp:config />
      <interface virtual_id="iface0"/>
   </node>
   
   <link virtual_id="link1" >
      <interface_ref virtual_node_id="node1" virtual_interface_id="iface0"/>
      <interface_ref virtual_node_id="node2" virtual_interface_id="iface0"/>
      <link_type type_name="ethernet" />
      <latency>100</latency>
      <packet_loss>0.05</packet_loss>
   </link>
   
   <node virtual_id="lamp" virtualization_type="raw" exclusive="1"
      startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers">

      <node_type type_name="pc" type_slots="1"/>
      <disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP" />
      
      <lamp:config>
         <lamp:service type="lamp_portal" enable="true" />
      </lamp:config>

   </node>
</rspec>

Using the Rspec defined above, created a sliver with the LAMP resources:

$ ./src/omni.py -a https://www.emulab.net/protogeni/xmlrpc/am -n createsliver lnevers-lamp-slice1 lamp.rspec
INFO:omni:Loading config file omni_config
INFO:omni:Using control framework pg
INFO:omni:Slice urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 expires within 1 day on 2011-11-17 00:09:25 UTC
INFO:omni:Creating sliver(s) from rspec file lamp.rspec for slice urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1
INFO:omni:Asked https://www.emulab.net/protogeni/xmlrpc/am to reserve resources. Result:
INFO:omni:<?xml version="1.0" ?>
INFO:omni:<!-- Reserved resources for:
        Slice: lnevers-lamp-slice1
        At AM:
        URL: https://www.emulab.net/protogeni/xmlrpc/am
 -->
INFO:omni:
<rspec xmlns="http://protogeni.net/resources/rspec/0.2" xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">  
   
     <node component_manager_urn="urn:publicid:IDN+emulab.net+authority+cm" component_manager_uuid="28a10955-aa00-11dd-ad1f-001143e453fe" component_urn="urn:publicid:IDN+emulab.net+node+pc151" component_uuid="de98e45d-773e-102b-8eb4-001143e453fe" exclusive="1" hostname="pc151.emulab.net" sliver_urn="urn:publicid:IDN+emulab.net+sliver+62460" sliver_uuid="84a0623d-107e-11e1-b47a-001143e453fe" sshdport="22" startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers" virtual_id="node1" virtualization_subtype="raw" virtualization_type="raw" xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">    

          <node_type type_name="pc" type_slots="1"/>    
          <disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP"/>    
            <lamp:config/>     
          <interface component_id="eth3" virtual_id="iface0"/>    
       <services>      <login authentication="ssh-keys" hostname="pc151.emulab.net" port="22" username="lnevers"/>    </services>  </node>  
  
     <node component_manager_urn="urn:publicid:IDN+emulab.net+authority+cm" component_manager_uuid="28a10955-aa00-11dd-ad1f-001143e453fe" component_urn="urn:publicid:IDN+emulab.net+node+pc157" component_uuid="de994176-773e-102b-8eb4-001143e453fe" exclusive="1" hostname="pc157.emulab.net" sliver_urn="urn:publicid:IDN+emulab.net+sliver+62461" sliver_uuid="85797dab-107e-11e1-b47a-001143e453fe" sshdport="22" startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers" virtual_id="node2" virtualization_subtype="raw" virtualization_type="raw" xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">    

          <node_type type_name="pc" type_slots="1"/>    
          <disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP"/>    
          <lamp:config/>    
          <interface component_id="eth3" virtual_id="iface0"/>    
       <services>      <login authentication="ssh-keys" hostname="pc157.emulab.net" port="22" username="lnevers"/>    </services>  </node>  
   
     <link sliver_urn="urn:publicid:IDN+emulab.net+sliver+62463" sliver_uuid="86c7361d-107e-11e1-b47a-001143e453fe" virtual_id="link1" vlantag="805">    
          <interface_ref IP="10.10.1.1" MAC="0002b365cd49" component_urn="urn:publicid:IDN+emulab.net+interface+pc151:eth3" sliver_urn="urn:publicid:IDN+emulab.net+sliver+62464" sliver_uuid="8762eaa1-107e-11e1-b47a-001143e453fe" virtual_interface_id="iface0" virtual_node_id="node1"/>    
          <interface_ref IP="10.10.1.2" MAC="0002b335f753" component_urn="urn:publicid:IDN+emulab.net+interface+pc157:eth3" sliver_urn="urn:publicid:IDN+emulab.net+sliver+62465" sliver_uuid="8851fd87-107e-11e1-b47a-001143e453fe" virtual_interface_id="iface0" virtual_node_id="node2"/>    
          <link_type type_name="ethernet"/>    
          <latency>      100    </latency>    
          <packet_loss>      0.05    </packet_loss>    
     </link>  
   
     <node component_manager_urn="urn:publicid:IDN+emulab.net+authority+cm" component_manager_uuid="28a10955-aa00-11dd-ad1f-001143e453fe" component_urn="urn:publicid:IDN+emulab.net+node+pc150" component_uuid="de98a21d-773e-102b-8eb4-001143e453fe" exclusive="1" hostname="pc150.emulab.net" sliver_urn="urn:publicid:IDN+emulab.net+sliver+62462" sliver_uuid="86285b18-107e-11e1-b47a-001143e453fe" sshdport="22" startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers" virtual_id="lamp" virtualization_subtype="raw" virtualization_type="raw" xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">    

          <node_type type_name="pc" type_slots="1"/>    
          <disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP"/>    
      
          <lamp:config>      
               <lamp:service enable="true" type="lamp_portal"/>      
          </lamp:config>    

       <services>      <login authentication="ssh-keys" hostname="pc150.emulab.net" port="22" username="lnevers"/>    </services>  </node>  
</rspec>
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createsliver:
  Options as run:
                aggregate: https://www.emulab.net/protogeni/xmlrpc/am
                framework: pg
                native: True
  Args: createsliver lnevers-lamp-slice1 lamp.rspec
  Result Summary: Slice urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 expires within 1 day(s) on 2011-11-17 00:09:25 UTC
Reserved resources on https://www.emulab.net/protogeni/xmlrpc/am.  
INFO:omni: ============================================================

3. Upload Slice Manifest. Upload your topology to allow services configuration within the UNIS system.

This step requires upload the slice manifest and your user credentials for the slice, which can be generated with the omni tools as follows:

 $ cd /path/to/gcf-1.4
 $ ./src/omni.py -a https://www.emulab.net/protogeni/xmlrpc/am -o listresources lnevers-lamp-slice1
 $ ./src/omni.py -o -a https://www.emulab.net/protogeni/xmlrpc/am getslicecred lnevers-lamp-slice1

The first omni command creates a manifest Rspec output file named lnevers-lamp-slice1-rspec-www-emulab-net-protogeni.xml, later renamed it lnevers-lamp-slice1-manifest.xml for conciseness. The second omni command generate a user credentials file for the slice which is named lnevers-lamp-slice1-cred.xml. Both credential and slice manifest can also be generated with the protogeni-tests tools:

 $ ./getslicecredential.py -n lnevers-lamp-slice1 >lnevers-lamp-slice1-cred.xml
 $  ./getmanifest.py --slicename=lamp-slice1 (?)

The user credential and slice manifest output files are copied to the protogeni-tests area for uploading.

  $ cd /path/to/protogeni-tests/
  $ cp /path/to/gcf-1.4/lnevers-lamp-slice1-rspec-www-emulab-net-protogeni.xml lnevers-lamp-slice1-manifest.xml
  $ cp /path/to/gcf-1.4/lnevers-lamp-slice1-cred.xml .

With the latest lamp-sendmanifest.py, you should use the syntax below, but due to a bug with support for RSpec V0.2, the command does not work:

$ ./lamp-sendmanifest.py 0.2 lnevers-lamp-slice1-manifest.xml urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 lnevers-lamp-slice1-cred.xml  

The failing lamp-sendmanifest.py is the version introduced to support RSpec v2.0, but it no longer works with V0.2 Rspecs. The earlier version of the lamp-sendmanifest.py script was used to upload the V.0.2 RSpec, which worked using the following syntax:

$ ./lamp-sendmanifest.py lnevers-lamp-slice1-manifest.xml urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 lnevers-lamp-slice1-cred.xml 
<xml.dom.minidom.Document instance at 0x922a7ac>

<nmwg:message type="TSReplaceRequest" xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/">
  <nmwg:metadata id="meta0">

    <nmwg:eventType>http://ggf.org/ns/nmwg/topology/20070809</nmwg:eventType>
  </nmwg:metadata>

  <nmwg:metadata id="cred0">
    <nmwg:subject metadataIdRef="meta0">
<signed-credential xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.protogeni.net/resources/credential/credential.xsd" xsi:schemaLocation="http://www.protogeni.net/resources/credential/ext/policy/1 http://www.protogeni.net/resources/credential/ext/policy/1/policy.xsd">
  <credential xml:id="ref3BD07E1E9E482E53">
 <type>privilege</type>
 <serial>179245</serial>
 <owner_gid>MIIDVDCCAr2gAwIBAgIDASPNMA0GCSqGSIb3DQEBBAUAMIG4MQswCQYDVQQGEwJV

 .... part of output not shown.....

6uM9m1hY2akZ31VTquNmgPPm6S2YXqlI3inV9j1pFRDr3otve03BJw==
</owner_gid>
 <owner_urn>urn:publicid:IDN+emulab.net+user+lnevers</owner_urn>
 <target_gid>MIIDVjCCAr+gAwIBAgIDAUwPMA0GCSqGSIb3DQEBBAUAMIG4MQswCQYDVQQGEwJV

 .... part of output not shown.....

UFFT1tQR0LPOQ+XcacDrpDU6o4PSzPt++3vHt28pnbuwXhQ2OsDKK/nQ
</target_gid>
 <target_urn>urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1</target_urn>
 <uuid>652f6ae8-1519-11e1-9d24-001143e453fe</uuid>
 <expires>2011-11-28T00:00:00Z</expires>
  <privileges>
<privilege><name>*</name><can_delegate>1</can_delegate></privilege>
</privileges></credential>
  <signatures>
    <Signature xmlns="http://www.w3.org/2000/09/xmldsig#" xml:id="Sig_ref3BD07E1E9E482E53">
 <SignedInfo>
  <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
  <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
  <Reference URI="#ref3BD07E1E9E482E53">
    <Transforms>
      <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
    </Transforms>
    <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
    <DigestValue>mjy4Et+9cXTN/a2wASmIfAiixrQ=</DigestValue>
    </Reference>
 </SignedInfo>
 <SignatureValue>iAi25x4Uupnzo0is3Dp/e77mYBc+ymkGY3ShsE05BOM5lULUxOTKF3dkgY/Xirre
J1PiwIuk5YR/zufph1xMKYqe06al+dnDQMdEfneGKychrwhxg6sXNApATsq0Jr+s
K3E0NG6yC/sGUOqFCQKc9Vsj+YO13dzyVZP4quTY/VI=</SignatureValue>
 <KeyInfo>
  <X509Data>
   
  <X509Certificate>MIIDoTCCAwqgAwIBAgIDAS/uMA0GCSqGSIb3DQEBBAUAMIG4MQswCQYDVQQGEwJV

 .... part of output not shown.....

fmkqRvZqMOm5R//SSNBFl83lZzlu</X509Certificate>
<X509SubjectName>emailAddress=testbed-ops@flux.utah.edu,CN=2b437faa-aa00-11dd-ad1f-001143e453fe,OU=utahemulab.sa,O=Utah Network Testbed,ST=Utah,C=US</X509SubjectName>
<X509IssuerSerial>
<X509IssuerName>emailAddress=testbed-ops@flux.utah.edu,CN=boss.emulab.net,OU=Certificate Authority,O=Utah Network Testbed,L=Salt Lake City,ST=Utah,C=US</X509IssuerName>
<X509SerialNumber>77806</X509SerialNumber>
</X509IssuerSerial>
</X509Data>
  <KeyValue>
<RSAKeyValue>
<Modulus>
1ayN3cGHH9hsmTgVWVjb2ZOqF8zFJ1EwTFRpXVtI//wk05+Z7uunpxn/QL1F3Njd
cIEToEupo1q2tRUfCc2hquLBgC5zNfutYD/b5ukEsF5COKHb+pYl2RZly9BVckt+
ySFLnC23erKW7ILyO2fGBD/QzHZNPhdY/fs18iCh58c=
</Modulus>
<Exponent>
AQAB
</Exponent>
</RSAKeyValue>
</KeyValue>
 </KeyInfo>
</Signature>
  </signatures>
</signed-credential>
    </nmwg:subject>
    <nmwg:eventType>http://perfsonar.net/ns/protogeni/auth/credential/1</nmwg:eventType>
  </nmwg:metadata>

  <nmwg:data id="data0" metadataIdRef="cred0">
<topology id="genitopo" xmlns="http://ogf.org/schema/network/topology/unis/20100528/" xmlns:pgeni="http://ogf.org/schema/network/topology/protogeni/20100716/" xmlns:psconfig="http://ogf.org/schema/network/topology/psconfig/20100716/">
        <domain id="urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1">
                <node id="urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:node=node1">
                        <address type="dns">
                                pc86.emulab.net
                        </address>
                        <nodePropertiesBag>
                                <pgeni:nodeProperties component_manager_urn="urn:publicid:IDN+emulab.net+authority+cm" component_manager_uuid="28a10955-aa00-11dd-ad1f-001143e453fe" component_urn="urn:publicid:IDN+emulab.net+node+pc86" component_uuid="de98b72a-773e-102b-8eb4-001143e453fe" exclusive="1" sliver_urn="urn:publicid:IDN+emulab.net+sliver+63151" sliver_uuid="a4623e13-1515-11e1-9d24-001143e453fe" startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers" virtualization_subtype="raw" virtualization_type="raw" xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">
                                        <pgeni:node_type type_name="pc" type_slots="1"/>
                                        <pgeni:disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP"/>
                                        <pgeni:services>
                                                <pgeni:login authentication="ssh-keys" hostname="pc86.emulab.net" port="22" username="lnevers"/>
                                        </pgeni:services>
                                </pgeni:nodeProperties>
                                <psconfig:nodeProperties/>
                        </nodePropertiesBag>
                        <port id="urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:node=node1:port=iface0">
                                <name>
                                        eth1
                                </name>
                                <portPropertiesBag>
                                        <pgeni:portProperties component_id="eth1" component_urn="urn:publicid:IDN+emulab.net+interface+pc86:eth1" sliver_urn="urn:publicid:IDN+emulab.net+sliver+63155" sliver_uuid="a7668122-1515-11e1-9d24-001143e453fe"/>
                                </portPropertiesBag>
                                <address type="mac">
                                        00034773a242
                                </address>
                                <address type="ipv4">
                                        10.10.1.1
                                </address>
                        </port>
                </node>
                <node id="urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:node=node2">
                        <address type="dns">
                                pc101.emulab.net
                        </address>
                        <nodePropertiesBag>
                                <pgeni:nodeProperties component_manager_urn="urn:publicid:IDN+emulab.net+authority+cm" component_manager_uuid="28a10955-aa00-11dd-ad1f-001143e453fe" component_urn="urn:publicid:IDN+emulab.net+node+pc101" component_uuid="de987445-773e-102b-8eb4-001143e453fe" exclusive="1" sliver_urn="urn:publicid:IDN+emulab.net+sliver+63152" sliver_uuid="a558b3b8-1515-11e1-9d24-001143e453fe" startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers" virtualization_subtype="raw" virtualization_type="raw" xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">
                                        <pgeni:node_type type_name="pc" type_slots="1"/>
                                        <pgeni:disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP"/>
                                        <pgeni:services>
                                                <pgeni:login authentication="ssh-keys" hostname="pc101.emulab.net" port="22" username="lnevers"/>
                                        </pgeni:services>
                                </pgeni:nodeProperties>
                                <psconfig:nodeProperties/>
                        </nodePropertiesBag>
                        <port id="urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:node=node2:port=iface0">
                                <name>
                                        eth3
                                </name>
                                <portPropertiesBag>
                                        <pgeni:portProperties component_id="eth3" component_urn="urn:publicid:IDN+emulab.net+interface+pc101:eth3" sliver_urn="urn:publicid:IDN+emulab.net+sliver+63156" sliver_uuid="a7fbba90-1515-11e1-9d24-001143e453fe"/>
                                </portPropertiesBag>
                                <address type="mac">
                                        0002b33f7dc7
                                </address>
                                <address type="ipv4">
                                        10.10.1.2
                                </address>
                        </port>
                </node>
                <node id="urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:node=lamp">
                        <address type="dns">
                                pc103.emulab.net
                        </address>
                        <nodePropertiesBag>
                                <pgeni:nodeProperties component_manager_urn="urn:publicid:IDN+emulab.net+authority+cm" component_manager_uuid="28a10955-aa00-11dd-ad1f-001143e453fe" component_urn="urn:publicid:IDN+emulab.net+node+pc103" component_uuid="de98b129-773e-102b-8eb4-001143e453fe" exclusive="1" sliver_urn="urn:publicid:IDN+emulab.net+sliver+63153" sliver_uuid="a62030ff-1515-11e1-9d24-001143e453fe" startup_command="/usr/local/etc/lamp/bootstrap.sh urn:publicid:IDN+emulab.net+slice+lnevers-lamp-slice1 urn:publicid:IDN+emulab.net+user+lnevers" virtualization_subtype="raw" virtualization_type="raw" xmlns:lamp="http://protogeni.net/resources/rspec/0.2/ext/lamp/1">
                                        <pgeni:node_type type_name="pc" type_slots="1"/>
                                        <pgeni:disk_image name="urn:publicid:IDN+emulab.net+image+GeniSlices//UBUNTU91-LAMP"/>
                                        <pgeni:services>
                                                <pgeni:login authentication="ssh-keys" hostname="pc103.emulab.net" port="22" username="lnevers"/>
                                        </pgeni:services>
                                </pgeni:nodeProperties>
                                <psconfig:nodeProperties>
                                        <psconfig:service enable="true" type="lamp_portal"/>
                                </psconfig:nodeProperties>
                        </nodePropertiesBag>
                </node>
                <link directed="false" id="urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:link=link1">
                        <type>
                                ethernet
                        </type>
                        <linkPropertiesBag>
                                <pgeni:linkProperties sliver_urn="urn:publicid:IDN+emulab.net+sliver+63154" sliver_uuid="a6bce1ec-1515-11e1-9d24-001143e453fe" vlantag="305">
                                        <pgeni:latency>
                                                      100    
                                        </pgeni:latency>
                                        <pgeni:packet_loss>
                                                      0.05    
                                        </pgeni:packet_loss>
                                </pgeni:linkProperties>
                        </linkPropertiesBag>
                        <relation type="endPoint">
                                <portIdRef>
                                        urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:node=node1:port=iface0
                                </portIdRef>
                        </relation>
                        <relation type="endPoint">
                                <portIdRef>
                                        urn:ogf:network:domain=emulab.net+slice+lnevers-lamp-slice1:node=node2:port=iface0
                                </portIdRef>
                        </relation>
                </link>
        </domain>
</topology>

  </nmwg:data>
</nmwg:message>


Enter PEM pass phrase:
Received:

<SOAP-ENV:Envelope xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
                   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                   xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
<nmwg:message xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="message.9312060" type="TSReplaceResponse"><nmwg:metadata metadataIdRef="meta0" id="metadata.3790284"><nmwg:eventType>success.ma.replaced</nmwg:eventType></nmwg:metadata><nmwg:data metadataIdRef="metadata.3790284" id="data.6902728"><nmwgr:datum xmlns:nmwgr="http://ggf.org/ns/nmwg/result/2.0/">data element(s) successfully replaced</nmwgr:datum></nmwg:data><nmwg:metadata xmlns:nmwg="http://ggf.org/ns/nmwg/base/2.0/" id="meta0">

    <nmwg:eventType>http://ggf.org/ns/nmwg/topology/20070809</nmwg:eventType>
  </nmwg:metadata></nmwg:message>  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

4. Get the LAMP certificate. The LAMP services require a special certificate for the user and the slice within the expiration time to access topology information withing UNISIS.

$ ./lamp-getcertificate.py -n lnevers-lamp-slice1
Got my SA credential, looking up lnevers-lamp-slice1
Asking for slice credential for lnevers-lamp-slice1
Got the slice credential
Asking for my lamp certificate
Paste the following certificate *as is* into a file called lampcert.pem
Upload the certificate to all LAMP enabled nodes at /usr/local/etc/protogeni/ssl/lampcert.pem
-----BEGIN RSA PRIVATE KEY-----

.. many lines of output not show here....
-----END CERTIFICATE-----

5. Upload LAMP Certificate Determined which node to which to upload the LAMP certificate, and then upload certificate to /usr/local/etc/protogeni/ssl/lampcert.pem on each node.

$ grep "login" lnevers-lamp-slice1-manifest.xml  
       <services>      <login authentication="ssh-keys" hostname="pc86.emulab.net" port="22" username="lnevers"/>    </services>  </node>  
       <services>      <login authentication="ssh-keys" hostname="pc101.emulab.net" port="22" username="lnevers"/>    </services>  </node>  
       <services>      <login authentication="ssh-keys" hostname="pc103.emulab.net" port="22" username="lnevers"/>    </services>  </node>  

$ for node in pc86.emulab.net pc101.emulab.net pc103.emulab.net; do scp lampcert.pem lnevers@$node:.; ssh lnevers@$node "sudo mv lampcert.pem /usr/local/etc/protogeni/ssl/lampcert.pem"; ssh lnevers@$node "sudo chown root.perfsonar /usr/local/etc/protogeni/ssl/lampcert.pem"; ssh lnevers@$node "sudo chmod 440 /usr/local/etc/protogeni/ssl/lampcert.pem"; ssh lnevers@$node "sudo /etc/init.d/psconfig restart"; done
lampcert.pem                                                                                                                                                             100% 4226     4.1KB/s   00:00    
/etc/init.d/psconfig stop: perfSONAR pSConfig Service stopped
waiting...
/opt/perfsonar_ps/perfSONAR_PS-pSConfig/bin/daemon.pl --ssl-enable --config=/usr/local/etc/perfSONAR/pSConfig.conf --pidfile=psconfig.pid --piddir=/var/run --logger=/usr/local/etc/perfSONAR/pSConfig_logger.conf --user=perfsonar --group=perfsonar
/etc/init.d/psconfig start: perfSONAR pSConfig Service started
lampcert.pem                                                                                                                                                             100% 4226     4.1KB/s   00:00    
/etc/init.d/psconfig stop: perfSONAR pSConfig Service stopped
waiting...
/opt/perfsonar_ps/perfSONAR_PS-pSConfig/bin/daemon.pl --ssl-enable --config=/usr/local/etc/perfSONAR/pSConfig.conf --pidfile=psconfig.pid --piddir=/var/run --logger=/usr/local/etc/perfSONAR/pSConfig_logger.conf --user=perfsonar --group=perfsonar
/etc/init.d/psconfig start: perfSONAR pSConfig Service started
lampcert.pem                                                                                                                                                             100% 4226     4.1KB/s   00:00    
/etc/init.d/psconfig stop: perfSONAR pSConfig Service stopped
waiting...
/opt/perfsonar_ps/perfSONAR_PS-pSConfig/bin/daemon.pl --ssl-enable --config=/usr/local/etc/perfSONAR/pSConfig.conf --pidfile=psconfig.pid --piddir=/var/run --logger=/usr/local/etc/perfSONAR/pSConfig_logger.conf --user=perfsonar --group=perfsonar
/etc/init.d/psconfig start: perfSONAR pSConfig Service started

After the services were started still could connect to the LAMP Portal, it was suggested that Web Server Certificate Bundle should be refreshed:

 lamp:~> sudo /usr/local/etc/protogeni/ssl/getcacerts
 Files /usr/local/etc/protogeni/ssl/genica.bundle and /tmp/genica.bundle.6774 differ
 Files /usr/local/etc/protogeni/ssl/genicrl.bundle and /tmp/genicrl.bundle.6774 differ
 /etc/init.d/psconfig stop: perfSONAR pSConfig Service stopped
 /opt/perfsonar_ps/perfSONAR_PS-pSConfig/bin/daemon.pl --ssl-enable --config=/usr/local/etc/perfSONAR/pSConfig.conf --pidfile=psconfig.pid --piddir=/var/run --logger=/usr/local/etc/perfSONAR/pSConfig_logger.conf --user=perfsonar --group=perfsonar
/etc/init.d/psconfig start: perfSONAR pSConfig Service started
  * Starting MySQL database server mysqld                                                               [ OK ] 
  * Checking for corrupt, not cleanly closed and upgrade needing tables.
lamp:~>

After refreshing the Webserver Certificate bundle, the service should be restarted on the node by using the following:

lamp:~> sudo /etc/init.d/psconfig restart

6. You can now connect to the LAMP Portal. Following are various captures of the LAMP Portal, starting with the main page or Slice Overview => Configuration Status page before any configuration had taken place:

Selecting the Registered Services brings up the following page:

The Configuration => Enabled Services shows the following:

The Configuration -> Clock Synchronization shows the NTP server configuration page:

Selected an NTP server and saved changes.

7. You can now enable/disable services on each node. Following instructions in the tutorial enabled the following services were enabled on each node:

  • node1: Host Monitoring Daemon, Latency services, BWCTL, and the NTP server.
  • node2: Host Monitoring Daemon, Bandwidth services, OWAMP, and the NTP server.
  • lamp: LAMP Portal, Host Monitoring Collector, the Ganglia Measurement Archive, and NTP server.

Note that the services must be enable to configure Scheduled Tests. Once the services are enables switched to "Configuration Status" page to "Push Configuration" to the UNIS server.

8. Schedule Tests. In the "Scheduled Tests" page you can configure latency and bandwidth tests, following is the capture for enabling Throughput test node2:

After several minutes you may view results by going to the "Registered Services" and clicking on the "Pull Registered Services from UNISIS":

To view all available Ganglia data, you can connect to Ganglia directly at the address https://<Collector_node>/ganglia/ (where collector_node is the lamp node):

You can also access specific details of the Ganglia data in the Visualization => SNMP Services by "Query" and then choosing data of interest. Below is part of the available options, more are available but not show in the image below:

To view results for the Ping Scheduled tests, use the Visualization=> PINGER Server and click "Query" to view data of interest:

Following is an example graph for the 12 hours option:

Last modified 8 years ago Last modified on 12/07/11 16:09:12

Attachments (12)

Download all attachments as: .zip