Version 4 (modified by, 9 years ago) (diff)


Installing Emulab Client Tools on an ExoGENI image

  • Note: these instructions assume a Redhat-based OS. Replace the relevant commands with your OS-specific versions.
  • Some notes included for Debian-based systems.
  1. Boot a VM on ExoGENI.
  2. Clean up VM
    1. /etc/init.d/neuca stop
    2. chkconfig neuca off (debian: update-rc.d -f neuca remove)
    3. remove public keys (from at least root)
    4. remove users if desired
    5. cleanup sudoers
      • Remove users added by ExoGENI
    6. cleanup hostname
      • cleanup anything the post boot script did
  3. Modify the VM as you want.
  4. Install Emulab tools
    1. yum install perl dhclient openssh mysql bison byacc flex boost git mysql-server mysql-devel mysql-embedded-devel mysql-proxy-devel libtool perl-Time-HiRes yum install python-devel httpd man httpd-devel dos2unix swig swig-devel boost-devel pcap-devel libpcap-devel mysql-devel db4-devel db4 libdb-devel compat-db tcsh
    2. Install pubsub
    3. Install client side tools
      • git clone git://
      • cd emulab-devel
      • git submodule init
      • git submodule update
      • mkdir emulab-objects
      • cd emulab-objects
      • copy the defs.txt file to your VM (attached to this page)
      • ../emulab-devel/configure --with-TBDEFS=../defs.txt
      • gmake client
      • gmake client-install
  • Note: For Debian, modify utils/ to include a case for the distribution. The target can be the same as the existing Ubuntu11.
  1. Fix resov.conf and hostname
    • edit /etc/sysconfig/network to include:
  2. Add /users
  3. Allow sudo to run without a tty. Add the following to the sudoers file: "Defaults !requiretty”
  4. Create a file called /etc/emulab/genvmtype and stick in one line that says “xen”
    • edit /usr/local/etc/emulab/rc/rc.mounts and change this line:
      "if (REMOTE() || JAILED() || (GENVNODE() && !INXENVM()) || PLAB())”    to   "if (1);"
  5. NOTE: NFS clients can be installed to keep rc.mounts working. This is necessary to launch commands in <services> statements.
  1. setup for ec2 import
    1. yum install ruby zip unzip sudo e2fsprogs rsync
    2. Make user the “EC2 user@node" is in the shudders file (i.e. pruth@node )
    3. Copy emulab keys into ExoGENI instance
      • cat key to >> .ssh/authorized_keys”
  • Debian Note: If you have any services that start on boot that depend on users/interfaces coming up, make sure the init scripts start after the testbed script within the /etc/rcX.d directories.