249 | | <li>On the <i>Slice</i> page, select the <b>Renew slice only</b> radio button.</li> |
250 | | <li>Click on the date below. In the calendar that pops up, select a date in the near future.</li> |
251 | | <li>Press <b>Renew</b> to renew the slice. Renewing the slice now allows the resources to have longer initial expiration times.</li> |
252 | | |
253 | | </ol> |
254 | | </td> |
255 | | <td> |
256 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/renew_slice_v2.png?format=raw" alt="Renew slice" width="600" title="Renew Slice" /> |
257 | | <br /> |
258 | | <b>Figure 3-2</b> <i>Renew the slice.</i></i> |
259 | | </td> |
260 | | </tr> |
261 | | </table> |
262 | | }}} |
263 | | |
264 | | |
265 | | === 3.3 Reserve Two Virtual Machines at One Aggregate === |
266 | | The Portal is integrated with a tool, Flack, which allows you to draw topologies of GENI resources and then reserve them. |
267 | | |
268 | | |
269 | | {{{ |
270 | | #!html |
271 | | <table border="0"> |
272 | | |
273 | | <tr> |
274 | | <td > |
275 | | <ol> |
276 | | <li>On the <i>Slice</i> tab, press the <b>Flack</b> button. Flack will open in a new tab.</li> |
277 | | </ol> |
278 | | </td> |
279 | | <td> |
280 | | |
281 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GENIEducation/SampleAssignments/LabZero/Graphics/launch_flack_v3.png?format=raw" alt="Launch Flack" width="600" title="Launch Flack" /> |
282 | | <br /> |
283 | | <b>Figure 3-3</b> <i>Launch Flack</i> |
284 | | </td> |
285 | | </tr> |
286 | | <tr> |
287 | | |
288 | | <td > |
289 | | <ol start='2'> |
290 | | <li>Wait for Flack to load. You should see: your username, the slice name, and a list of aggregates. Flack should look like the picture to the right.</li> |
291 | | </ol> |
292 | | </td> |
293 | | <td> |
294 | | |
295 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GEC17Agenda/GettingStartedWithGENI_I/Graphics/Flack_login_v1.png?format=raw" alt="Flack" height="350" title="Flack" /> |
296 | | <br /> |
297 | | <b>Figure 3-4</b> <i>Flack after it has loaded.</i> |
298 | | </td> |
299 | | </tr> |
300 | | <tr> |
301 | | <td > |
302 | | <ol start='3'> |
303 | | <li>Find the aggregate listed on your worksheet. </li> |
304 | | <li>Click the <b>VM</b> box next to that aggregate and drag it onto the canvas.</li> |
305 | | <li>Repeat the above step. You should now see two VM boxes on the canvas.</li> |
306 | | <li>Now click near one of the VM boxes on the canvas, then click and drag towards the other VM. Release when you reach the other VM. You should now see a line and a box representing a link connecting the two VMs.</li> |
307 | | <li>The canvas should now look like the picture on the right.</li> |
308 | | <li>To edit the name of each VM, click the <b>i</b> in the circle.</li> |
309 | | </ol> |
310 | | </td> |
311 | | <td> |
312 | | |
313 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GEC17Agenda/GettingStartedWithGENI_I/Graphics/oneam_twovmlink_highlight_v2.png?format=raw" alt="Two VMs connected by a link." height="350" title="Two VMs connected by a link." /> |
314 | | <br /> |
315 | | <b>Figure 3-5</b> <i>Two VMs connected by a link.</i> |
316 | | </td> |
317 | | </tr> |
318 | | <tr> |
319 | | |
320 | | <td > |
321 | | <ol start='9'> |
322 | | |
323 | | |
324 | | <li>In the field at the top, replace "VM" with "client".</li> |
325 | | <li>If you are using an ExoGENI rack, set the "Sliver Type" to "EC2Small". |
326 | | <table id="Table_03" border="0" cellpadding="5" cellspacing="0"> |
327 | | <tr> |
328 | | <td> |
329 | | <img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/exogeni-logo.png?format=raw" width="50" height="50" alt="ExoGENI"> |
330 | | </td> |
331 | | <td>ExoGENI allows you to reserve machines of various sizes. We will use small ones for this tutorial to conserve resources.</td> |
332 | | |
333 | | </tr> |
334 | | </table> |
335 | | </li> |
336 | | |
337 | | </ol> |
338 | | </td> |
339 | | <td> |
340 | | |
341 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GEC17Agenda/GettingStartedWithGENI_I/Graphics/label_client_EG_highlight_v2.png?format=raw" alt="Relabel VM" height="350" title="Relabel VM" /> |
342 | | <br /> |
343 | | <b>Figure 3-6</b> <i>Edit the name of the VM. Set the Sliver Type on ExoGENI racks.</i> |
344 | | </td> |
345 | | </tr> |
346 | | <tr> |
347 | | <td > |
348 | | <ol start='11'> |
349 | | <li>Now click on "Interfaces and Links" (this is the middle tab with the "link" symbol").</li> |
350 | | <li>Enter the Desired IP Address for this node which is listed on your worksheet.</li> |
351 | | <li>Enter the Desired Mask of <i>255.255.255.0</i>.</li> |
352 | | <li>Then Press "Apply" at the bottom of the screen.</li> |
353 | | <li>Repeat the above six steps for the second VM, labeling it "server" and setting the server's Desired IP Address.</li> |
354 | | </ol> |
355 | | </td> |
356 | | <td> |
357 | | |
358 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GEC17Agenda/GettingStartedWithGENI_I/Graphics/label_client_IP_highlight_v3.png?format=raw" alt="Relabel VM" height="350" title="Relabel VM" /> |
359 | | <br /> |
360 | | <b>Figure 3-7</b> <i>Edit the IP Address and Mask of the VM. </i> |
361 | | </td> |
362 | | </tr> |
363 | | |
364 | | |
365 | | <tr> |
366 | | <td > |
367 | | <ol start='16'> |
368 | | <li>Click the Submit button near the bottom of the page. When prompted, confirm you want to actually reserve resources. </li> |
369 | | </ol> |
370 | | </td> |
371 | | <td> |
372 | | |
373 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GEC17Agenda/GettingStartedWithGENI_I/Graphics/oneam_twovmlink_labeled_highlight_v1.png?format=raw" alt="Two VMs connected by a link" height="350" title="Two VMs connected by a link" /> |
374 | | <br /> |
375 | | <b>Figure 3-8</b> <i>Two VMs connected by a link.</i> |
376 | | </td> |
| 257 | <li> Go to the <i>Home</i> tab. </li> |
| 258 | <li> Press the <b>Create Slice</b> button for this project.</li> |
| 259 | <li> <FONT COLOR="black">As a slice name use the slice name on your worksheet (the slice name should be of the form <code>portal##</code>), you can leave the description empty and press <b>Create Slice</b></font> |
| 260 | </li> |
| 261 | |
| 262 | |
| 263 | </ol> |
| 264 | </td> |
| 265 | |
381 | | |
382 | | === 3.4 Check Whether Virtual Machines are Ready to be Used === |
383 | | {{{ |
384 | | #!html |
385 | | <table> |
386 | | <tr> |
387 | | <td > |
388 | | <ol> |
389 | | <li>After clicking the Submit button, wait for the canvas to turn green. (This may take awhile.)</li> |
390 | | <li>The canvas should now look like the picture on the right.</li> |
391 | | </ol> |
392 | | </td> |
393 | | <td> |
394 | | |
395 | | <img border="0" src="http://groups.geni.net/geni/attachment/wiki/GEC17Agenda/GettingStartedWithGENI_I/Graphics/oneam_twovmlink_ready.png?format=raw" alt="Resources are ready" height="350" title="Resources are ready" /> |
396 | | <br /> |
397 | | <b>Figure 3-9</b> <i>Two VMs connected by a link are reserved and ready to login.</i> |
398 | | </td> |
399 | | </tr> |
400 | | |
401 | | |
402 | | </table> |
403 | | }}} |
| 270 | == 4.1. Import a simple experiment == |
| 271 | |
| 272 | {{{ |
| 273 | #!html |
| 274 | <p>For this exercise, we will start with a prepared rspec file.</p> |
| 275 | |
| 276 | <table><tr> |
| 277 | <td> |
| 278 | <p>You should load this topology into Flack:</p> |
| 279 | <ol> |
| 280 | <li>From the "Import" menu (see figure), select the "Import from the web" item.</li> |
| 281 | <li>Enter the URL corresponding to the rack type you are using and open it: |
| 282 | <p><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/instageni-logo.png?format=raw" width="75" height="75" /><b> InstaGENI</b></p> |
| 283 | <pre class="wiki">http://protogeni.net/gec17tut2.rspec</pre> |
| 284 | <p><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/exogeni-logo.png?format=raw" width="75" height="75" /><b> ExoGENI</b></p> |
| 285 | <pre class="wiki">http://protogeni.net/gec17tut2eg.rspec</pre> |
| 286 | </li> |
| 287 | <li>Because this file contains a generic description of resources and does |
| 288 | not specify any particular aggregate manager, Flack will report |
| 289 | "There were resources detected without a manager selected, please select which manager you would like to use." |
| 290 | Select "OK", and then choose the manager listed on your worksheet from the |
| 291 | list. Then select "Accept", and a network topology (which might look |
| 292 | familiar if you have completed earlier tutorials) should appear |
| 293 | on the canvas.</li> |
| 294 | </ol> |
| 295 | </td> |
| 296 | <td><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/PortalOmniExample/ObtainResources/flack-import-small.png?format=raw" /></td> |
| 297 | </tr></table> |
| 298 | }}} |
| 299 | |
| 300 | == 4.2. Modify the experiment to automatically install and execute network test software == |
| 301 | |
| 302 | {{{ |
| 303 | #!html |
| 304 | <table><tr> |
| 305 | <td><p>1. For this sample experiment, we'd like some additional software |
| 306 | (<tt>Apache</tt>, <tt>iperf</tt>, and a couple of custom scripts) loaded |
| 307 | onto the VMs to perform traffic measurements. In Flack, you can manipulate |
| 308 | the details of the request for a node or link with the "<tt>i</tt>" button |
| 309 | on the relevant component on the canvas (see figure). Do this now on the |
| 310 | client node.</p></td> |
| 311 | <td><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/PortalOmniExample/ObtainResources/flack-node-info-small.png?format=raw" /></td> |
| 312 | </tr></table> |
| 313 | |
| 314 | <table><tr> |
| 315 | <td><p>2. When you open the node information, you should see options like those |
| 316 | in the figure. The controls available to you will vary depending on the |
| 317 | types of the aggregate manager and the component, but many features are |
| 318 | widely available throughout GENI.</p> |
| 319 | |
| 320 | <p>3. The way we will request installation of the proper software and execution |
| 321 | of our experiment is to add <i>install</i> and <i>execute</i> services. |
| 322 | First, select "<tt>+ Add Install Service</tt>" as shown. Flack will now |
| 323 | prompt you for an "Archive URL" and a location for installation. For this |
| 324 | experiment, please enter the appropriate URL: |
| 325 | <p><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/instageni-logo.png?format=raw" width="75" height="75" /><b> InstaGENI</b></p> |
| 326 | <pre class="wiki">http://protogeni.net/gec17tut2.tar.gz</pre> |
| 327 | <p><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/exogeni-logo.png?format=raw" width="75" height="75" /><b> ExoGENI</b></p> |
| 328 | <pre class="wiki">http://protogeni.net/gec17tut2eg.tar.gz</pre> |
| 329 | and ask for this to be installed in: |
| 330 | <pre class="wiki"> |
| 331 | /local |
| 332 | </pre></p> |
| 333 | |
| 334 | <p>4. Similarly, please use the "<tt>+ Add Execute Service</tt>" button to request |
| 335 | that the appropriate command: |
| 336 | <p><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/instageni-logo.png?format=raw" width="75" height="75" /><b> InstaGENI</b></p> |
| 337 | <pre class="wiki">sudo /local/install-script.sh</pre> |
| 338 | <p><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/Graphics/exogeni-logo.png?format=raw" width="75" height="75" /><b> ExoGENI</b></p> |
| 339 | <p><pre class="wiki">/local/install-client.sh</pre>(client node only) |
| 340 | <pre class="wiki">/local/install-server.sh</pre>(server node only)</p> |
| 341 | be executed using |
| 342 | <pre class="wiki"> |
| 343 | sh |
| 344 | </pre></p> |
| 345 | |
| 346 | <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" /></td><td>Be very careful when entering this information -- these commands will not |
| 347 | be executed yet, so it will be some time before you will see any relevant |
| 348 | error messages if there is a mistake here.</td></tr></table> |
| 349 | |
| 350 | <p>5. Once both the "install" and "execute" services are specified, please |
| 351 | choose "Apply". Then repeat the procedure to add the same "install" and |
| 352 | "execute" services on the server node.</p> |
| 353 | |
| 354 | <p>If you have time, it would be instructive to download the "<tt>gec17tut2.tar.gz</tt>" file yourself, and inspect the contents. You will see the <tt>install-script.sh</tt> file referred to in the execute service, and this is a good example of how you can ask for GENI components to perform tasks for you without any manual intervention. This is a very useful facility for large experiments!</p> |
| 355 | </td> |
| 356 | <td><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/PortalOmniExample/ObtainResources/flack-services-small.png?format=raw" /></td> |
| 357 | </tr></table> |
| 358 | }}} |
| 359 | |
| 360 | == 4.3. Export the modified request RSpec == |
| 361 | {{{ |
| 362 | #!html |
| 363 | <p>Now we will pull back some of the covers and inspect exactly what Flack 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.</p> |
| 364 | |
| 365 | <table><tr> |
| 366 | <td> |
| 367 | <ol> |
| 368 | <li>From the "View" menu (see figure), select the "Preview |
| 369 | request document(s)" item. This will bring up a window showing the |
| 370 | current rspec -- please take a moment to inspect it. The XML elements |
| 371 | under the "<tt>flack</tt>" namespace were added for Flack's internal |
| 372 | use (containing information about the canvas layout, editing history, etc.), |
| 373 | and are ignored by aggregate managers. The "node" and "link" elements |
| 374 | contain the specification for the components we will request, and if you |
| 375 | look closely, you will be able to see the install and execute service |
| 376 | elements you added earlier.</li> |
| 377 | <li>Use the "Save to file" button (in the upper left) to |
| 378 | make a local copy of your rspec. We'll use this in the next step to |
| 379 | demonstrate how other client tools also use rspec files to communicate |
| 380 | requests to aggregate managers.</li> |
| 381 | </ol> |
| 382 | </td> |
| 383 | <td><img src="http://groups.geni.net/geni/attachment/wiki/GENIExperimenter/Tutorials/PortalOmniExample/ObtainResources/flack-view-small.png?format=raw" /></td> |
| 384 | </tr></table> |
| 385 | }}} |
| 386 | |
| 387 | == 5. Instantiate the new experiment using Omni == |
| 388 | |
| 389 | For this step, we'll change the approach a bit and switch to a new client tool: the command line Omni client. From a terminal, please enter the command: |
| 390 | |
| 391 | {{{ |
| 392 | $ omni.py -a AM_NICKNAME createsliver SLICENAME RSPEC_FILE |
| 393 | }}} |
| 394 | |
| 395 | where {{{AM_NICKNAME}}} is the nickname for your assigned aggregate manager and {{{SLICENAME}}} is the name of the slice you created at the portal (both of these are given on your worksheet). {{{RSPEC_FILE}}} should be replaced with the filename of the rspec you saved in step 4. |
| 396 | |
| 397 | |
| 398 | If all is well, Omni should give you a number of informational messages, such as: |
| 399 | {{{ |
| 400 | INFO:omni:Loading config file /home/geni/.gcf/omni_config |
| 401 | }}} |
| 402 | |
| 403 | It should quickly proceed to the point where it makes the request to the remote manager: |
| 404 | {{{ |
| 405 | INFO:omni:Creating sliver(s) from rspec file /home/geni/Downloads/experiments.rspec for slice ... |
| 406 | }}} |
| 407 | |
| 408 | This step can sometimes be time-consuming, so please be patient. If it succeeds, within a few minutes Omni should report: |
| 409 | {{{ |
| 410 | INFO:omni: Completed createsliver: |
| 411 | }}} |
| 412 | |
| 413 | and your sliver is complete! |