wiki:HowTo/WriteInstallScript

Version 13 (modified by nriga@bbn.com, 12 years ago) (diff)

--

When getting ready to run experiments in GENI, it is always a good idea to automate the setup of your experiment.

In GENI RSpecs, you have the capability of instructing an Aggregate Manager to download software from the web, and execute install scripts at boot up time. This page provides step by step instructions about how to write and use install scripts.

1. Write your script

The first step is to write your install script. While writing your script you should keep in mind that:

  • your script does not run in the context of your user, make sure that you change the permissions of anything installed in your home directory so that you have access to them when you login
  • your script does run as a user with sudo privileges. Make sure you use sudo when:
    • you execute privileged commands (e.g. yum, apt-get, service)
    • you place things in your home directory
    • you try to write files in protected directories (e.g. `/usr/locac/bin/, /local/)
  • the $PATH environment variable is not necessarily set, make sure you use the full path of commands in your scripts; for example don't use ifconfig, but use /sbin/ifconfig. This is also true for the interpreters used for your script.Make sure you add
  • your script runs every time the host reboots, so if you reboot the host as part of your script you have to check if your script has already ran or you will end up in a cycle of reboots.

You can use any scripting language you want, popular choices are:

  • shell scripts, there are many tutorials online that can guide you through it.
  • [ http://www.perl.org/ Perl]. Make sure that perl is installed by default in the Image you are using. Login to your nodes and type perl -h.
  • Python. Make sure that perl is installed by default in the Image you are using. Login to your nodes and type python -h.

If an interpreter for the scripting language of your choice is not installed, you can write a short shell script that will first install it

2. Test your script

3. Find a Web Server

3.a. Use an existing Web Server

3.b. Install a Web Server

3.b.i Use a PlanetLab Host

4. Upload your script

Useful tips