| 1 | == Installing Emulab Client Tools on an ExoGENI image == |
| 2 | |
| 3 | * Note: these instructions assume a Redhat-based OS. Replace the relevant commands with your OS-specific versions. |
| 4 | * Some notes included for Debian-based systems. |
| 5 | |
| 6 | 1. Boot a VM on ExoGENI. |
| 7 | 2. Clean up VM |
| 8 | a. /etc/init.d/neuca stop |
| 9 | a. chkconfig neuca off (debian: update-rc.d -f neuca remove) |
| 10 | a. remove public keys (from at least root) |
| 11 | a. remove users if desired |
| 12 | a. cleanup sudoers |
| 13 | * Remove users added by ExoGENI |
| 14 | a. cleanup hostname |
| 15 | * cleanup anything the post boot script did |
| 16 | 3. Modify the VM as you want. |
| 17 | 4. Install Emulab tools |
| 18 | a. 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 |
| 19 | a. Install pubsub |
| 20 | * wget http://www.emulab.net/downloads/pubsub-0.98.tar.gz |
| 21 | * tar -zxvf pubsub-0.98.tar.gz |
| 22 | * cd pubsub-0.98 |
| 23 | * ./configure |
| 24 | * gmake client (debian: make is fine) |
| 25 | * gmake install-client |
| 26 | a. Install client side tools |
| 27 | * git clone git://git-public.flux.utah.edu/emulab-devel.git |
| 28 | * cd emulab-devel |
| 29 | * git submodule init |
| 30 | * git submodule update |
| 31 | * mkdir emulab-objects |
| 32 | * cd emulab-objects |
| 33 | * copy the defs.txt file to your VM (attached to this page) |
| 34 | * ../emulab-devel/configure --with-TBDEFS=../defs.txt |
| 35 | * gmake client |
| 36 | * gmake client-install |
| 37 | |
| 38 | * Note: For Debian, modify utils/osstuff.sh to include a case for the distribution. The target can be the same as the existing Ubuntu11. |
| 39 | |
| 40 | a. Fix resov.conf and hostname |
| 41 | * edit /etc/sysconfig/network to include: |
| 42 | {{{ |
| 43 | HOSTNAME=localhost.localdomain |
| 44 | PEERDNS=yes |
| 45 | }}} |
| 46 | a. Add /users |
| 47 | a. Allow sudo to run without a tty. Add the following to the sudoers file: "Defaults !requiretty” |
| 48 | a. Create a file called /etc/emulab/genvmtype and stick in one line that says “xen” |
| 49 | * edit /usr/local/etc/emulab/rc/rc.mounts and change this line: |
| 50 | {{{ |
| 51 | "if (REMOTE() || JAILED() || (GENVNODE() && !INXENVM()) || PLAB())” to "if (1);" |
| 52 | }}} |
| 53 | |
| 54 | 5. setup for ec2 import |
| 55 | a. yum install ruby zip unzip sudo e2fsprogs rsync |
| 56 | a. Make user the “EC2 user@node" is in the shudders file (i.e. pruth@node ) |
| 57 | a. Copy emulab keys into ExoGENI instance |
| 58 | * cat key to >> .ssh/authorized_keys” |