1 | | = [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Setup Understanding the AM API using Content Centric Networking] = |
2 | | {{{ |
3 | | #!html |
| 1 | = [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Setup Understanding the AM API using Content Centric Networking] = |
| 2 | {{{ |
| 3 | #!html |
| 4 | |
| 5 | |
| 6 | <div style="text-align:center; width:495px; margin-left:auto; margin-right:auto;"> |
| 7 | <img id="Image-Maps_5201305222028436" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/Setup.jpg?format=raw" usemap="#Image-Maps_5201305222028436" border="0" width="495" height="138" alt="" /> |
| 8 | <map id="_Image-Maps_5201305222028436" name="Image-Maps_5201305222028436"> |
| 9 | <area shape="rect" coords="18,18,135,110" href="./Setup" alt="" title="" /> |
| 10 | <area shape="rect" coords="180,18,297,111" href="./Execute" alt="" title="" /> |
| 11 | <area shape="rect" coords="344,17,460,110" href="./Finish" alt="" title="" /> |
| 12 | <area shape="rect" coords="493,136,495,138" href="http://www.image-maps.com/index.php?aff=mapped_users_5201305222028436" alt="Image Map" title="Image Map" /> |
| 13 | </map> |
| 14 | <!-- Image map text links - End - --> |
| 15 | |
| 16 | </div> |
| 17 | }}} |
| 18 | |
| 19 | |
| 20 | |
| 21 | == 1. Design the Experiment == |
| 22 | |
| 23 | {{{ |
| 24 | #!html |
| 25 | <table border="0"> |
| 26 | <tr> |
| 27 | <td > |
| 28 | <ol type='a'><li>In today's experiment you will use resources at the aggregate listed on the worksheet. If you don't have a worksheet use <i>Clemson InstaGENI (aka instageni.clemson.edu)</i> </li> |
| 29 | </li> |
| 30 | </ol> |
| 31 | </td> |
| 32 | </tr> |
| 33 | </table> |
| 34 | }}} |
| 35 | |
| 36 | == 2. Establish the Environment == |
| 37 | |
| 38 | === 2.1 Pre-work: Ensure SSH keys are setup === |
| 39 | |
| 40 | Verify that you have at least one public key associated with your account. To do that, after you login to the portal check under your Profile, under the `SSH keys` tab. If you do not have SSH keys associated yet, please follow the instructions on that tab of the Portal. |
| 41 | |
| 42 | === 2.2 Configure Omni === |
| 43 | |
| 44 | |
| 45 | {{{ |
| 46 | #!html |
| 47 | <table> |
| 48 | <tr><td> |
| 49 | <ol type='a'> |
| 50 | <li>Login to the <a href="http://portal.geni.net"> GENI Portal </a> </li> |
| 51 | <li> Click on the `Profile tab` link on the top of your |
| 52 | screen. Then click on the `Configure omni` tab under |
| 53 | `PROFILE`.</li> |
| 54 | </ol> |
| 55 | </td><td> |
| 56 | <img |
| 57 | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/ConfigureOmniTab.png" |
| 58 | width="400" /> |
| 59 | <br /> |
| 60 | <b>Figure 2-1</b> Click on the <i>Configure omni</i> tab under |
| 61 | <i>Profile</i>.</i> |
| 62 | </td></tr> |
| 63 | <tr><td> |
| 64 | <ol type='a' start='3'> |
| 65 | <li> Click on the `Download your omni data` button under step 2. </li> |
| 66 | </ol> |
| 67 | </td><td> |
| 68 | <img |
| 69 | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/DownloadOmniDataButton.jpg" |
| 70 | width="400" /> |
| 71 | <br /> |
| 72 | <b>Figure 2-2</b> <i>Download your omni data</i> under step 2. |
| 73 | </td></tr> |
| 74 | <tr><td> |
| 75 | <ol type='a' start='4'> |
| 76 | <li> If this is the first time you try to access your GENI |
| 77 | certificate you will have to generate one. Click on the |
| 78 | `generate a certificate` link.</li> |
| 79 | </ol> |
| 80 | </td><td> |
| 81 | <img |
| 82 | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/GenerateCertLink.jpg" |
| 83 | width="400" /> |
| 84 | <br /> |
| 85 | <b>Figure 2-3</b> Click on <i>Generate a certificate</i>.</i> |
| 86 | </td></tr> |
| 87 | <tr><td> |
| 88 | <ol type='a' start='5'> |
| 89 | <li> Unless you really understand how SSL certificates |
| 90 | work, choose the simple option. Click on the `Generate |
| 91 | Combined Certificate and Key File` button and then click on |
| 92 | `Close`. You will be taken back to the download page with |
| 93 | the warning. Reload the page to enable the download |
| 94 | button.</li> |
| 95 | </ol> |
| 96 | </td><td> |
| 97 | <img |
| 98 | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/SimpleOption.jpg" |
| 99 | width="350"/> |
| 100 | <br /> |
| 101 | <b>Figure 2-4</b> Click on <i>Generate Combined Certificate and Key File</i>. |
| 102 | </td></tr> |
| 103 | <tr><td> |
| 104 | <ol type='a' start='6'> |
| 105 | <li> If you are a member of more than one project, select |
| 106 | which project you would like to be the default one for |
| 107 | running experiments in GENI. You can always change the |
| 108 | project that is used by the `-r` command line option of |
| 109 | Omni. Then click on `Download your omni data`.</li> |
| 110 | </ol> |
| 111 | </td><td> |
| 112 | <img |
| 113 | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/DownloadOmniData.jpg" |
| 114 | width="400"/> |
| 115 | <br /> |
| 116 | <b>Figure 2-5</b> Click on <i>Download your omni data</i>. |
| 117 | </td></tr> |
| 118 | </table> |
| 119 | <table> |
| 120 | <tr><td> |
| 121 | <ol type='a' start='7'> |
| 122 | <li> The bundle will be saved at <code>~/Downloads/omni.bundle</code> </li> |
| 123 | <li>Open a terminal window and type:<pre |
| 124 | class="wiki">omni-configure</pre>The cert and key files you need will |
| 125 | be installed in the appropriate folders.</li> |
| 126 | </ol> |
| 127 | </td></tr> |
| 128 | </table> |
| 129 | }}} |
| 130 | |
| 131 | == 3. Obtain Resources == |
6 | | <div style="text-align:center; width:495px; margin-left:auto; margin-right:auto;"> |
7 | | <img id="Image-Maps_5201305222028436" src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/Setup.jpg?format=raw" usemap="#Image-Maps_5201305222028436" border="0" width="495" height="138" alt="" /> |
8 | | <map id="_Image-Maps_5201305222028436" name="Image-Maps_5201305222028436"> |
9 | | <area shape="rect" coords="18,18,135,110" href="./Setup" alt="" title="" /> |
10 | | <area shape="rect" coords="180,18,297,111" href="./Execute" alt="" title="" /> |
11 | | <area shape="rect" coords="344,17,460,110" href="./Finish" alt="" title="" /> |
12 | | <area shape="rect" coords="493,136,495,138" href="http://www.image-maps.com/index.php?aff=mapped_users_5201305222028436" alt="Image Map" title="Image Map" /> |
13 | | </map> |
14 | | <!-- Image map text links - End - --> |
| 181 | |
| 182 | </tr></table> |
| 183 | }}} |
| 184 | |
| 185 | === 3.3. Modify the RSpec to automatically install and execute CCNX software === |
| 186 | |
| 187 | For this experiment, we need to install the following software on the nodes: |
| 188 | * The CCNX software (ccnx-0.6.2.tar.gz) |
| 189 | * Scripts that set up the CCNX software (ccnx-setup.tar.gz) |
| 190 | * Scripts used to pull atmospheric precipitation data using the CCNX protocol (ccnx-atmos.tar.gz) |
| 191 | |
| 192 | When the nodes start up, we need the following scripts to be executed: |
| 193 | * Script that sets up the node (node-setup) |
| 194 | * Script that sets up the ccnx protocol (ccnx-setup) |
| 195 | * Script that setup up ccnx protocol routes (add-precip-routes) |
| 196 | |
| 197 | We automate the installation and running of the software using install and execute scripts in the RSpec. |
| 198 | |
| 199 | {{{ |
| 200 | #!html |
| 201 | <table><tr> |
| 202 | <td colspan=2> |
| 203 | <ol type='a'> |
| 204 | <li>Click on the <b>collab node</b> (see figure) to manipulate details of the node configuration. |
| 205 | |
| 206 | |
| 207 | <table id="Table_01" border="0" cellpadding="5" cellspacing="0"> |
| 208 | <tr> |
| 209 | <td> |
| 210 | <img src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/Graphics/4NotesIcon_512x512.png" width="50" height="50" alt="Note"> |
| 211 | </td> |
| 212 | <td> |
| 213 | When you open the node information, you should see a new pane with fields to fill in like |
| 214 | in the figure. |
| 215 | </td> |
| 216 | </tr> |
| 217 | </table> |
| 218 | |
| 219 | |
| 220 | </li> |
| 221 | </ol> |
| 222 | </td> |
| 223 | |
| 224 | <td colspan=2> |
| 225 | <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/JacksLab1_5.png?format=raw" width='500'/> |
| 226 | <br /> |
| 227 | <b>Figure 3-2</b> <i>Edit the nodes</i> |
| 228 | </td> |
| 229 | </tr> |
| 230 | </table> |
| 231 | |
| 232 | <table> |
| 233 | <tr><td> |
| 234 | <ol type='a' start='2'> |
| 235 | |
| 236 | <li>The way we will request installation of the proper software and execution |
| 237 | of our experiment is to add <i>install</i> and <i>execute</i> services. |
| 238 | </li> |
| 239 | </td> |
| 240 | <td> |
| 241 | <img width='500' src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/JacksLab1_6.png?format=raw" /> |
| 242 | <br /> |
| 243 | <b>Figure 3-3</b> <i>Specify the install and execute scripts </i> |
| 244 | </td></tr> |
| 245 | |
| 246 | |
| 247 | </table> |
| 248 | |
| 249 | <table> |
| 250 | |
| 251 | <tr> |
| 252 | <td colspan=2> |
| 253 | <ol type='a' start='3'> |
| 254 | <li> |
| 255 | You will be adding three install scripts. First, select "<tt>Add</tt>" under the <b>Install Scripts</b> sections as shown. In the box in the <b>URL</b> field enter (cut-and-paste): <br> |
| 256 | <pre>http://www.gpolab.bbn.com/experiment-support/ccnx-xen/ccnx-0.6.2.tar.gz</pre> |
| 257 | and enter |
| 258 | <pre>/</pre> |
| 259 | in the box under it (labeled 'Install Path:'). |
| 260 | <br> |
| 261 | <br> |
| 262 | Now, select "<tt>Add</tt>" under the <b>Install Scripts</b> again. This time add: <br> |
| 263 | <pre>http://www.gpolab.bbn.com/experiment-support/ccnx-xen/ccnx-atmos.tar.gz</pre> |
| 264 | and enter <br> |
| 265 | <pre>/</pre> |
| 266 | in the box under it (labeled 'Install Path:'). |
| 267 | <br> |
| 268 | <br> |
| 269 | Similarly, add a third install service: |
| 270 | <pre>http://www.gpolab.bbn.com/experiment-support/ccnx-xen/ccnx-setup.tar.gz</pre> |
| 271 | and enter <br> |
| 272 | <pre>/tmp</pre> |
| 273 | in the box under it (labeled 'Install Path:'). <strong> Note the different install directory this time. </strong> |
| 274 | <br> |
| 275 | <br> |
| 276 | |
| 277 | <li>In a similar manner, use the "<tt>Add</tt>" button under the <b>Execute Scripts</b> section to add three execute services on this node: |
| 278 | <br> |
| 279 | <pre> |
| 280 | cd /tmp/ccnx-setup && ./node-setup |
| 281 | cd /tmp/ccnx-setup && ./add-precip-routes rsrchr |
| 282 | cd /tmp/ccnx-setup && ./ccnx-setup router 4 |
| 283 | </pre> |
| 284 | </li> |
| 285 | |
| 286 | <table border="0" cellpadding="0" cellspacing="0"><tr><td><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/warning-icon-hi.png?format=raw" width='50' height='50'/></td><td>Be very careful when entering this information -- these commands will not |
| 287 | be executed yet, so it will be some time before you will see any relevant |
| 288 | error messages if there is a mistake here.</td></tr></table> |
| 289 | </li> |
| 290 | </ol> |
| 291 | /td> |
| 292 | /tr> |
| 293 | </table> |
| 294 | |
| 295 | <table> |
| 296 | <tr><td> |
| 297 | <ol type='a' start='5'> |
| 298 | <li> You <i> DO NOT </i> have to specify install and execute scripts for the other nodes as they have already been done for you. You can check this by clicking on the icons for these nodes. |
| 299 | |
| 300 | |
| 301 | </ol> |
| 302 | </td> |
| 303 | </tr> |
| 304 | |
| 305 | </table> |
| 306 | }}} |
| 307 | |
| 308 | |
| 309 | |
| 310 | |
| 311 | === 3.4. Export the modified request RSpec === |
| 312 | Now we will pull back some of the covers and inspect exactly what Jacks has been doing for us when preparing the RSpecs for the experiments we design. Each node and link has a corresponding element in the RSpec, and the details of the component configuration (such as the install and execute services we requested above) are specified with attributes, or sometimes child elements, within those portions of the document. |
| 313 | |
| 314 | {{{ |
| 315 | #!html |
| 316 | <table><tr> |
| 317 | <td> |
| 318 | <ol type='a'> |
| 319 | <li>From the <i>Add Resources</i> window (see figure), select the <b>View |
| 320 | Rspec</b> button on the top right hand side. This will bring up a pane showing the |
| 321 | current RSpec -- please take a moment to inspect it. The `<node>` and `<link>` elements |
| 322 | contain the specification for the components we will request, and if you |
| 323 | look closely, you will be able to see the install and execute service |
| 324 | elements you added earlier. Click on the "View RSpec" button again to return to the main screen. |
| 325 | </li> |
| 326 | |
| 327 | </ol> |
| 328 | </td> |
| 329 | <td> |
| 330 | <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/JacksLab1_7.png?format=raw" width='500'/> |
| 331 | <br/> |
| 332 | <b>Figure 3-4</b> View and save the final request RSpec |
| 333 | </td> |
| 334 | </tr></table> |
| 335 | |
| 336 | <table><tr> |
| 337 | <td> |
| 338 | <ol type='a' start=2> |
| 339 | <li>Use the <b>Download</b> button (in the lower left part of the screen next to Save RSpec) to |
| 340 | make a local copy of your RSpec with the name <tt>rspec.xml</tt>. We'll use this in the next step to |
| 341 | demonstrate how other client tools also use RSpec files to communicate |
| 342 | requests to aggregate managers.</li> |
| 343 | </ol> |
| 344 | </td></tr> |
| 345 | </table> |
| 346 | }}} |
| 347 | |
| 348 | |
| 349 | |
| 350 | === 3.5. Instantiate the new experiment using Omni === |
| 351 | |
| 352 | For this step, we'll change the approach a bit and switch to a new client tool, the command line Omni client. |
| 353 | |
| 354 | From a terminal, please enter the command: |
| 355 | {{{ |
| 356 | $ omni -a AM_NICKNAME createsliver SLICENAME RSPEC_FILE |
| 357 | }}} |
| 358 | where {{{AM_NICKNAME}}} is the nickname for your assigned aggregate manager and {{{SLICENAME}}} is the name of the slice you created earlier (both of these are given on your worksheet). {{{RSPEC_FILE}}} should be replaced with the filename of the RSpec you saved in step 3.4. |
| 359 | |
| 360 | |
| 361 | If all is well, Omni should give you a number of informational messages, such as: |
| 362 | {{{ |
| 363 | INFO:omni:Loading config file /home/geni/.gcf/omni_config |
| 364 | }}} |
| 365 | |
| 366 | It should quickly proceed to the point where it makes the request to the remote manager: |
| 367 | {{{ |
| 368 | INFO:omni:Creating sliver(s) from rspec file /home/geni/Downloads/experiments.rspec for slice ... |
| 369 | }}} |
19 | | |
20 | | |
21 | | == 1. Design the Experiment == |
22 | | |
23 | | {{{ |
24 | | #!html |
25 | | <table border="0"> |
26 | | <tr> |
27 | | <td > |
28 | | <ol type='a'><li>In today's experiment you will use resources at the aggregate listed on the worksheet. If you don't have a worksheet use any site with <i>InstaGENI</i> in it's name.</li> |
29 | | </li> |
30 | | </ol> |
31 | | </td> |
32 | | </tr> |
33 | | </table> |
34 | | }}} |
35 | | |
36 | | == 2. Establish the Environment == |
37 | | |
38 | | === 2.1 Pre-work: Ensure SSH keys are setup === |
39 | | |
40 | | Verify that you have at least one public key associated with your account. To do that, after you login to the portal check under your Profile, under the `SSH keys` tab. If you do not have SSH keys associated yet, please follow the instructions on that tab of the Portal. |
41 | | |
42 | | === 2.2 Configure Omni === |
43 | | |
44 | | |
45 | | {{{ |
46 | | #!html |
47 | | <table> |
48 | | <tr><td> |
49 | | <ol type='a'> |
50 | | <li>Login to the <a href="http://portal.geni.net"> GENI Portal </a> </li> |
51 | | <li> Click on the `Profile tab` link on the top of your |
52 | | screen. Then click on the `Configure omni` tab under |
53 | | `PROFILE`.</li> |
54 | | </ol> |
55 | | </td><td> |
56 | | <img |
57 | | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/ConfigureOmniTab.png" |
58 | | width="400" /> |
59 | | <br /> |
60 | | <b>Figure 2-1</b> Click on the <i>Configure omni</i> tab under |
61 | | <i>Profile</i>.</i> |
62 | | </td></tr> |
63 | | <tr><td> |
64 | | <ol type='a' start='3'> |
65 | | <li> Click on the `Download your omni data` button under step 2. </li> |
66 | | </ol> |
67 | | </td><td> |
68 | | <img |
69 | | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/DownloadOmniDataButton.jpg" |
70 | | width="400" /> |
71 | | <br /> |
72 | | <b>Figure 2-2</b> <i>Download your omni data</i> under step 2. |
73 | | </td></tr> |
74 | | <tr><td> |
75 | | <ol type='a' start='4'> |
76 | | <li> If this is the first time you try to access your GENI |
77 | | certificate you will have to generate one. Click on the |
78 | | `generate a certificate` link.</li> |
79 | | </ol> |
80 | | </td><td> |
81 | | <img |
82 | | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/GenerateCertLink.jpg" |
83 | | width="400" /> |
84 | | <br /> |
85 | | <b>Figure 2-3</b> Click on <i>Generate a certificate</i>.</i> |
86 | | </td></tr> |
87 | | <tr><td> |
88 | | <ol type='a' start='5'> |
89 | | <li> Unless you really understand how SSL certificates |
90 | | work, choose the simple option. Click on the `Generate |
91 | | Combined Certificate and Key File` button and then click on |
92 | | `Close`. You will be taken back to the download page with |
93 | | the warning. Reload the page to enable the download |
94 | | button.</li> |
95 | | </ol> |
96 | | </td><td> |
97 | | <img |
98 | | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/SimpleOption.jpg" |
99 | | width="350"/> |
100 | | <br /> |
101 | | <b>Figure 2-4</b> Click on <i>Generate Combined Certificate and Key File</i>. |
102 | | </td></tr> |
103 | | <tr><td> |
104 | | <ol type='a' start='6'> |
105 | | <li> If you are a member of more than one project, select |
106 | | which project you would like to be the default one for |
107 | | running experiments in GENI. You can always change the |
108 | | project that is used by the `-r` command line option of |
109 | | Omni. Then click on `Download your omni data`.</li> |
110 | | </ol> |
111 | | </td><td> |
112 | | <img |
113 | | src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/OmniConfigure/Automatic/DownloadOmniData.jpg" |
114 | | width="400"/> |
115 | | <br /> |
116 | | <b>Figure 2-5</b> Click on <i>Download your omni data</i>. |
117 | | </td></tr> |
118 | | </table> |
119 | | <table> |
120 | | <tr><td> |
121 | | <ol type='a' start='7'> |
122 | | <li> The bundle will be saved at <code>~/Downloads/omni.bundle</code> </li> |
123 | | <li>Open a terminal window and type:<pre |
124 | | class="wiki">omni-configure</pre>The cert and key files you need will |
125 | | be installed in the appropriate folders.</li> |
126 | | </ol> |
127 | | </td></tr> |
128 | | </table> |
129 | | }}} |
130 | | |
131 | | == 3. Obtain Resources == |
132 | | |
133 | | |
134 | | === 3.1 Create a slice === |
135 | | |
136 | | Create a slice using `omni` and the slice name of your choice. From now on that slice name will be referred to as `SLICENAME`. |
137 | | {{{ |
138 | | $ omni createslice SLICENAME |
139 | | }}} |
140 | | |
141 | | === 3.2. Load a simple topology in Jacks === |
142 | | For this exercise, we will edit an existing RSpec file. Start by loading this predefined topology into Jacks. |
143 | | |
144 | | {{{ |
145 | | #!html |
146 | | <table> |
147 | | <tr><td> |
148 | | <ol type='a'> |
149 | | <li>In the Portal, open the Slice page for the slice you just created. Notice that you created the slice with omni and it is available via the Portal.</li> |
150 | | <li>Press the <b>Add Resources</b> button to launch Jacks for this slice.</li> |
151 | | <li>From the <b>Choose RSpec</b> menu (see figure), select the <b>URL</b> button.</li> |
152 | | </ol> |
153 | | </td> |
154 | | <td> |
155 | | <img border="0" |
156 | | src="http://groups.geni.net/geni/raw-attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/JacksLab1_7_v2.png" |
157 | | width="400" alt="Import an RSpec into Jacks" title="Import an RSpec into Jacks" /> |
158 | | <br /> |
159 | | <b>Figure 3-1</b> <i>Import an RSpec into Jacks.</i> |
160 | | </td> |
161 | | </tr> |
162 | | </table> |
163 | | <table> |
164 | | <tr><td> |
165 | | <ol type='a' start='4'> |
166 | | <li>Enter the URL for the RSpec: <br> |
167 | | <tt> http://www.gpolab.bbn.com/exp/LabOne/ccnx/lab1ccn-3node.xml </tt> <br> |
168 | | then click <b>Select</b>.<br/> |
169 | | </li> |
170 | | <li>After you click <b>Select</b>, a network topology should appear on the canvas.</li> |
171 | | </ol> |
172 | | </td> |
173 | | </tr> |
174 | | |
175 | | </table> |
176 | | |
177 | | </li> |
178 | | </ol> |
179 | | </td> |
180 | | |
181 | | |
182 | | </tr></table> |
183 | | }}} |
184 | | |
185 | | === 3.3. Modify the RSpec to automatically install and execute CCNX software === |
186 | | |
187 | | For this experiment, we need to install the following software on the nodes: |
188 | | * The CCNX software (ccnx-0.6.2.tar.gz) |
189 | | * Scripts that set up the CCNX software (ccnx-setup.tar.gz) |
190 | | * Scripts used to pull atmospheric precipitation data using the CCNX protocol (ccnx-atmos.tar.gz) |
191 | | |
192 | | When the nodes start up, we need the following scripts to be executed: |
193 | | * Script that sets up the node (node-setup) |
194 | | * Script that sets up the ccnx protocol (ccnx-setup) |
195 | | * Script that setup up ccnx protocol routes (add-precip-routes) |
196 | | |
197 | | We automate the installation and running of the proper software using `install` and `execute` scripts in the RSpec. These can be added by selecting the '''Add''' button under the '''Install Scripts''' and '''Execute Scripts''' fields for each node. |
198 | | |
199 | | Most of the nodes have an install script specified for each of the three pieces of software listed above which loads a tarball of software onto each node: |
200 | | * `http://www.gpolab.bbn.com/experiment-support/ccnx-xen/ccnx-0.6.2.tar.gz` |
201 | | * `http://www.gpolab.bbn.com/experiment-support/ccnx-xen/ccnx-atmos.tar.gz` |
202 | | * `http://www.gpolab.bbn.com/experiment-support/ccnx-xen/ccnx-setup.tar.gz` |
203 | | |
204 | | Likewise, the nodes have execute scripts to configure the software on each node: |
205 | | * `cd /tmp/ccnx-setup && ./node-setup` |
206 | | * `cd /tmp/ccnx-setup && ./add-precip-routes router` |
207 | | * `cd /tmp/ccnx-setup && ./ccnx-setup router 5` |
208 | | |
209 | | {{{ |
210 | | #!html |
211 | | <table border="0" cellpadding="0" cellspacing="0"><tr><td><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/warning-icon-hi.png?format=raw" width='50' height='50'/></td><td> |
212 | | You <i> DO NOT </i> have to specify install and execute scripts for the nodes as they have already been done for you. You can check this by clicking on the icons for these nodes. |
213 | | <br/><br/> |
214 | | In general, one should be very careful when entering this information -- these commands will not |
215 | | be executed yet, so it will be some time before you will see any relevant |
216 | | error messages if there is a mistake here. |
217 | | </td></tr></table> |
218 | | }}} |
219 | | |
220 | | |
221 | | |
222 | | {{{ |
223 | | #!html |
224 | | <table><tr> |
225 | | <td colspan=2> |
226 | | <ol type='a'> |
227 | | <li>Click on each node to manipulate details of the node configuration. |
228 | | <br/><br/> |
229 | | The <tt>ccnx-setup</tt> execute command takes as parameters the name of a single "barrier" node, which must be up in order for the experiment to start, and the number of nodes in the topology as follows: |
230 | | <pre>ccnx-setup BARRIER_NODE NUM_NODES</pre> |
231 | | We will continue to use the node <tt>ccnx-router</tt> as the barrier node. |
232 | | <br/><br/> |
233 | | We will add two nodes to the topology, so go ahead and change the number of nodes from 3 to 5. |
234 | | The new <tt>ccnx-router</tt> execute command on <b>all three nodes</b> should be: |
235 | | <pre>cd /tmp/ccnx-setup && ./ccnx-setup ccnx-router 5</pre> |
236 | | |
237 | | |
238 | | <table id="Table_01" border="0" cellpadding="5" cellspacing="0"> |
239 | | <tr> |
240 | | <td> |
241 | | <img src="http://trac.gpolab.bbn.com/gcf/raw-attachment/wiki/Graphics/4NotesIcon_512x512.png" width="50" height="50" alt="Note"> |
242 | | </td> |
243 | | <td> |
244 | | When you open the node information, you should see a new pane with fields to fill in like |
245 | | in the figure. |
246 | | </td> |
247 | | </tr> |
248 | | </table> |
249 | | |
250 | | |
251 | | </li> |
252 | | </ol> |
253 | | </td> |
254 | | |
255 | | <td colspan=2> |
256 | | <img src="http://groups.geni.net/geni/raw-attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/JacksLab1_5_v2.png" width='500'/> |
257 | | <br /> |
258 | | <b>Figure 3-2</b> <i>Edit all three nodes</i> |
259 | | </td> |
260 | | </tr> |
261 | | </table> |
262 | | |
263 | | |
264 | | |
265 | | <table><tr> |
266 | | <td colspan=2> |
267 | | <ol type='a' start='2'> |
268 | | <li>Copy the <tt>user</tt> node by: |
269 | | <ul> |
270 | | <li>Click on the <tt>user</tt> node. </li> |
271 | | <li>Press the <b>Duplicate Nodes Only</b> button. </li> |
272 | | <li>A node <tt>user-0</tt> should appear. Look at the install and execute scripts. They should be the same as on the original <tt>user</tt> node.</li> |
273 | | </ul> |
274 | | </li> |
275 | | <li>Copy the <tt>ccnx-router</tt> node the same way. The new node should be <tt>ccnx-router-1</tt>.</li> |
276 | | </ol> |
277 | | </td> |
278 | | |
279 | | <td colspan=2> |
280 | | <img src="http://groups.geni.net/geni/raw-attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/JacksLab1_20_v2.png" width='500'/> |
281 | | <br /> |
282 | | <b>Figure 3-3</b> <i>Copy the <tt>ccnx-router</tt> and <tt>user</tt> nodes.</i> |
283 | | </td> |
284 | | </tr> |
285 | | </table> |
286 | | <table><tr> |
287 | | <td colspan=2> |
288 | | <ol type='a' start='4'> |
289 | | <li>Draw a link between the <tt>ccnx-router</tt> and <tt>ccnx-router-1</tt> nodes.</li> |
290 | | <li>Draw another link between the new <tt>ccnx-router-1</tt> node and the <tt>user-0</tt> node.</li> |
291 | | <li>The topology should look like Figure 3-4</li> |
292 | | </ol> |
293 | | </td> |
294 | | |
295 | | <td colspan=2> |
296 | | <img src="http://groups.geni.net/geni/raw-attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/JacksLab1_21_v2.png" width='500'/> |
297 | | <br /> |
298 | | <b>Figure 3-4</b> <i>Draw links to connect the nodes.</i> |
299 | | </td> |
300 | | </tr> |
301 | | </table> |
302 | | |
303 | | <table><tr> |
304 | | <td colspan=2> |
305 | | <ol type='a' start='7'> |
306 | | <li>Press the <b>Auto-IP</b> button to automatically assign IP addresses to each interface in the topology.</li> |
307 | | <li> |
308 | | The <tt>add-precip-routes</tt> execute command takes as a parameter the name of the "next hop" node, which is the next node on the path to the <tt>data</tt> node: |
309 | | <pre>add-precip-routes NEXT_HOP_NODE</pre> |
310 | | |
311 | | Edit the new <tt>ccnx-router-1</tt> node to point to <tt>ccnx-router</tt>. |
312 | | <br/><br/> |
313 | | The new <tt>add-precip-routes</tt> execute command on <b>ccnx-router-1</b> should be: |
314 | | <pre>cd /tmp/ccnx-setup && ./add-precip-routes ccnx-router</pre> |
315 | | </li> |
316 | | <li> |
317 | | Edit the new <tt>user-0</tt> node to point to <tt>ccnx-router-1</tt>. |
318 | | <br/><br/> |
319 | | The new <tt>add-precip-routes</tt> execute command on <b>user-0</b> should be: |
320 | | <pre>cd /tmp/ccnx-setup && ./add-precip-routes ccnx-router-1</pre> |
321 | | |
322 | | </li> |
323 | | </ol> |
324 | | </td> |
325 | | |
326 | | <td colspan=2> |
327 | | <img src="http://groups.geni.net/geni/raw-attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/JacksLab1_22_v2.png" width='500'/> |
328 | | <br /> |
329 | | <b>Figure 3-5</b> <i>Edit the next hop on <tt>ccnx-router-1</tt> and <tt>user-0</tt>.</i> |
330 | | </td> |
331 | | </tr> |
332 | | </table> |
333 | | }}} |
334 | | |
335 | | |
336 | | |
337 | | === 3.4. Export the modified request RSpec === |
338 | | Now we will pull back some of the covers and inspect exactly what Jacks has been doing for us when preparing the RSpecs for the experiments we design. Each node and link has a corresponding element in the RSpec, and the details of the component configuration (such as the install and execute services we requested above) are specified with attributes, or sometimes child elements, within those portions of the document. |
339 | | |
340 | | {{{ |
341 | | #!html |
342 | | <table><tr> |
343 | | <td> |
344 | | <ol type='a'> |
345 | | <li>From the <i>Add Resources</i> window (see figure), select the <b>View |
346 | | Rspec</b> button on the top right hand side. This will bring up a pane showing the |
347 | | current RSpec -- please take a moment to inspect it. The `<node>` and `<link>` elements |
348 | | contain the specification for the components we will request, and if you |
349 | | look closely, you will be able to see the install and execute service |
350 | | elements you added earlier. Click on the "View RSpec" button again to return to the main screen. |
351 | | </li> |
352 | | |
353 | | </ol> |
354 | | </td> |
355 | | <td> |
356 | | <img src="http://groups.geni.net/geni/raw-attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/JacksLab1_24_v2.png" width='500'/> |
357 | | <br/> |
358 | | <b>Figure 3-4</b> View and save the final request RSpec |
359 | | </td> |
360 | | </tr></table> |
361 | | |
362 | | <table><tr> |
363 | | <td> |
364 | | <ol type='a' start=2> |
365 | | <li>Use the <b>Download</b> button (in the lower left part of the screen next to Save RSpec) to |
366 | | make a local copy of your RSpec with the name <tt>rspec.xml</tt>. We'll use this in the next step to |
367 | | demonstrate how other client tools also use RSpec files to communicate |
368 | | requests to aggregate managers.</li> |
369 | | </ol> |
370 | | </td></tr> |
371 | | </table> |
372 | | }}} |
373 | | |
374 | | |
375 | | |
376 | | === 3.5. Instantiate the new experiment using Omni === |
377 | | |
378 | | For this step, we'll change the approach a bit and switch to a new client tool, the command line Omni client. |
379 | | |
380 | | From a terminal, please enter the command: |
381 | | {{{ |
382 | | $ omni -a AM_NICKNAME createsliver SLICENAME RSPEC_FILE |
383 | | }}} |
384 | | where {{{AM_NICKNAME}}} is the nickname for your assigned aggregate manager and {{{SLICENAME}}} is the name of the slice you created earlier (both of these are given on your worksheet). {{{RSPEC_FILE}}} should be replaced with the filename of the RSpec you saved in step 3.4. |
385 | | |
386 | | |
387 | | If all is well, Omni should give you a number of informational messages, such as: |
388 | | {{{ |
389 | | INFO:omni:Loading config file /home/geni/.gcf/omni_config |
390 | | }}} |
391 | | |
392 | | It should quickly proceed to the point where it makes the request to the remote manager: |
393 | | {{{ |
394 | | INFO:omni:Creating sliver(s) from rspec file /home/geni/Downloads/experiments.rspec for slice ... |
395 | | }}} |
396 | | |
397 | | This step can sometimes be time-consuming, so please be patient. If it succeeds, within a couple of minutes Omni should report: |
398 | | {{{ |
399 | | INFO:omni: Completed createsliver: |
400 | | }}} |
401 | | |
402 | | and your resource reservation is complete! |
403 | | |
404 | | |
405 | | ---- |
406 | | = [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Setup Introduction] = |
407 | | = [http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Execute Next: Execute] = |
| 376 | and your resource reservation is complete! |
| 377 | |
| 378 | |
| 379 | ---- |
| 380 | = [wiki:GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Setup Introduction] = |
| 381 | = [http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/jacks/GettingStarted_PartII_ccn/Procedure/Execute Next: Execute] = |