Changes between Version 20 and Version 21 of DICLOUD/GEC12tutorial

10/18/11 13:40:18 (11 years ago)
David Irwin



  • DICLOUD/GEC12tutorial

    v20 v21  
    304304=== Application Description: simple.xml ===
     306simple.xml is a Gush application description file. At the highest level, we define the project, which in this case is called "simple." Next we define any software packages that are needed. Gush application descriptions are comprised of different types of "blocks."
     309<?xml version="1.0" encoding="utf-8"?>
     311  <project name="simple">
     312    <software name="SimpleSoftwareName" type="none">
     313      <package name="Package" type="web">
     314        <path>http://localhost/software.tar</path>   //Software tarball
     315        <dest_path>software.tar</dest_path>
     316      </package>
     317    </software>
     318    <component name="Cluster1">
     319      <rspec>
     320        <num_hosts>2</num_hosts>                                           //Number of remote clients
     321      </rspec>
     322      <software name="SimpleSoftwareName" />
     323      <resources>
     324        <resource type="ssh" group="local"/>
     325      </resources>
     326    </component>
     327    <experiment name="simple">
     328      <execution>
     329        <component_block name="cb1">
     330          <component name="Cluster1" />
     331          <process_block name="p2"> 
     332            <process name="cat">                                        //Define actual execution
     333              <path>cat</path>                                          //"cat software.txt"
     334              <cmdline>                 
     335                <arg>software.txt</arg>
     336              </cmdline>
     337              <cwd/>
     338            </process>
     339          </process_block>
     340        </component_block>
     341      </execution>
     342    </experiment>
     343  </project>
     347=== Environment Configuration: directory.xml ===
     349directory.xml defines the Gush resource directory. This file tells the Gush default matcher where to locate resources during execution. In the following example, we specify PlanetLab slices available to us, and define a mapping between slice names and port numbers.
     352<?xml version="1.0" encoding="UTF-8"?>
     354    <resource_manager type="ssh">
     355        <node hostname="amazon.machine.ip:15400" user="root" group="local" />
     356    </resource_manager>
     357    <resource_manager type="ssh">
     358        <node hostname="amazon.machine.ip:15400" user="root" group="local" />
     359    </resource_manager>
     363=== Gush Preferences: gush.prefs ===
     365The gush.prefs file defines basic preferences that customize the way applications are run. In this example we specify the ClientPrefix and ClientPath which control how the client is started ({ClientPrefix}/client) and what working directory the client uses when executing commands (chdir {ClientPath}). We can leave UsePlanetLab set to true even though we aren't using PlanetLab in this example.
     369  <pref key="ClientPrefix">./</pref>
     370  <pref key="ClientPath">./</pref>
     371  <pref key="UsePlanetLab">true</pref>
     375=== Start Gush ===
     377Now we are ready to run our example. The following shows the output from a run using two clients. You only need to type the commands that appear after "gush>".
     380$ ./gush -P 15000
     382gush> info nodes
     383There are 2 known nodes:
     384[   U       ] root@amazon.machine.ip:15400(pref=0) (Disconnected.)
     385[   U       ] root@amazon.machine2.ip:15400(pref=0) (Disconnected.)
     387gush> load tests/simple-ssh.xml
     388Project "simple" is selected.
     389Experiment "simple" is selected.
     391gush> run
     392Starting experiment run.
     393Running experiment simple...
     394gush> The configuration matcher has finished matching.
     395The resource allocator has finished successfully.
     396root@amazon.machine.ip:15400 has joined the mesh.
     397The file transfer of Package to amazon.machine.ip has been completed.
     398The software installation of Package on amazon.machine.ip was successful.
     399root@amazon.machine2.ip:15400 has joined the mesh.
     400The file transfer of Package to amazon.machine2.ip has been completed.
     401The software installation of Package on amazon.machine2.ip was successful.
     402root@amazon.machine2.ip:15400,26347: Hello World
     403,18302: Hello World
     406The experiment has ended.
     408gush> disconnect
     409gush> geni@amazon.machine.ip:15400 has decided to leave the mesh.
     410geni@amazon.machine.ip:15400 has decided to leave the mesh.
     412gush> quit