= [http://groups.geni.net/geni/wiki/GEC17Agenda/GettingStartedWithGENI_I/Procedure Title of the Experiment] = {{{ #!html
Image Map
}}} == 1. Design the Experiment == == 2. Establish the Environment == === 1. Pre-work: Create a GENI account === {{{ #!html
  1. Go to https://portal.geni.net and press the Use GENI button
  2. From the Drop Down menu select your institution. If you got an account through the GENI Identity Provider, please select GENI Project Office.
    Tip Start typing the name of your institution and see the list become smaller.
  3. You will be transferred to the Login Page of your institution. Fill in your username and password.
  4. Complete the form that appears after you have successfully logged in and press Continue.
  5. You will be transferred to an Activation Page. Make sure both checkboxes are checked and then press Activate.
Use GENI
Figure 1-1 Logging into the GENI Experimenter Portal.
}}} Congratulations, you have successfully created a GENI account. === 2. Pre-work: Project lead adds you to a project === In order to use the portal to reserve resources, you must join a project. We have created a project for this tutorial. {{{ #!html
  1. The tutorial organizers should have added you to the project for this tutorial. On the home page, you should see that you are a member of at least one project.
    Tip If you are not doing this exercise as part of an in-person tutorial please sign up for a GENI account and join a project.
}}} === 3. Generate and Download SSH Keypair === Access to compute resources in GENI is provided through ssh key pairs and thus the portal needs a public key to upload to compute resources. For the purposes of the tutorial we will have the portal create an SSH key pair for you. (However, if you prefer to use your personal public key you can choose to upload it.) {{{ #!html
  1. Once you are logged in, click on the Profile page.
  2. On the Profile page in the SSH Keys section, select generate and download an SSH keypair button.
Generate an SSH Key Pair
Figure 3-1 On the Profile page, select the "generate and download an SSH keypair" button.
  1. Enter the same passphrase twice, then press Generate SSH private key.
Generate an SSH Key Pair
Figure 3-2 Enter passphrase twice, then generate SSH private key.
  1. Now, press the Download Private Key button
  2. Open a terminal and execute:
    $ mv ~/Downloads/id_geni_ssh_rsa ~/.ssh/.
    $ chmod 600 ~/.ssh/id_geni_ssh_rsa
    $ ssh-add ~/.ssh/id_geni_ssh_rsa
    
    Later in the tutorial, this will allow you to log into your nodes securely without a password.
Download an SSH Key Pair
Figure 3-3 Download an SSH Key Pair.
}}} == 3. Obtain Resources == Now that you are a member of a project, you can create a slice and reserve resources. === 4. Create a slice === {{{ #!html
  1. Go to the Home tab.
  2. Press the Create Slice button for this project.
  3. As a slice name use the slice name on your worksheet (the slice name should be of the form portal##), you can leave the description empty and press Create Slice
Create a GENI Slice
Figure 4-1 Create a new slice.
}}} === 5. Renew your slice === Slices and the resources within them are reserved until their individual ''expiration times''. Renewing allows you to extend the expiration time of your slice and the resources in them. {{{ #!html
Warning Slices and the resources within them have distinct expiration times. You must renew both the slice and the resources separately.
}}} {{{ #!html
  1. On the Slice page, select the Renew slice only radio button.
  2. Click on the date below. In the calendar that pops up, select tomorrow's date.
  3. Press Renew to renew the slice. Renewing the slice now allows the resources to have longer initial expiration times.
Renew slice
Figure 5-1 Renew the slice.
}}} === 6. (Optional) Add other experimenters to your slice === When reserving resource via the portal, you can add other members to your slice so that other experimenters can have accounts and login into your resources. {{{ #!html
Warning Slice members will be able to login to resources reserved in the future if:
  • the resources were reserved directly through the portal (by clicking Add Resources on the slice page), and
  • the slice member has uploaded an ssh public key.
}}} {{{ #!html
  1. On the Slice page, press the Edit Slice Membership button.
  2. Find your neighbor on the list. Add them to the slice by selecting Add as Member in the pulldown menu next to their name and then pressing the Modify button.
Add Members to a Slice
Figure 6-1 Add other experimenters to your slice.
}}} === 7. Reserve Two Virtual Machines at One Aggregate === * Launch Flack, look around and draw sample topology * Draw two VMs with a link (tell them which site to use) {{{ #!html
  1. On the Slice tab, press the Flack button. Flack will open in a new tab.
Launch Flack
Figure 4-1 Load Flack
  1. Wait for Flack to load. You should see: the username, the slice name, and a list of aggregates should. Flack should look like the picture to the right.
Flack
Figure 4-1 Flack after it has loaded.
  1. Find the aggregate listed on your worksheet.
  2. Add the VM box next to that aggregate and draw it onto the canvas.
  3. Repeat the above step. You should now see two VM boxes on the canvas.
  4. 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.
  5. The canvas should now look like the picture on the right.
Flack
Figure 4-1 Two VMs connected by a link.
  1. Click the Submit button near the bottom of the page. When prompted, confirm you want to actually reserve resoruces.
  2. Wait for the canvas to turn green. (This may take awhile.)
  3. The canvas should now look like the picture on the right.
Flack
Figure 4-1 Two VMs connected by a link are reserved and ready to login.
}}} === 8. Check Whether Virtual Machines are Ready to be Used === ---- = [wiki:GEC17Agenda/GettingStartedWithGENI_I/Procedure Introduction] = = [wiki:GEC17Agenda/GettingStartedWithGENI_I/Procedure/Execute Next: Execute] =