setup.txt 5.3 KB
Newer Older
##### Setting up the Utah Network Testbed software on a boss node
##### Tested on FreeBSD 4.3, FreeBSD 4.5, FreeBSD 4.6, and FreeBSD 4.7

Jay Lepreau's avatar
Jay Lepreau committed
6 7 8
##### Step -1 - Set up "ops"

Follow the instructions in the setup-ops.txt file before the ones in this file!

##### Step 0 - OS installation and setup

12 13 14 15 16 17
Install FreeBSD on the machine you'll be using for your boss node, using the
standard FreeBSD installation process. You don't need to worry about which ports
to install, etc., as the ones required by this software will be installed
automatically. You, will, however, have to make sure that you create a
partition large enough to hold /usr/testbed - in addition to the testbed
software, this is where many disk images will get stored.

19 20
Make sure that you have the network correctly configured, and make sure that it
has a hostname that resolves. The silly mysql-server port requires this.

22 23 24
Go ahead and create an account for yourself on boss. For now, just stick the
home directory somewhere local, and move it to /users/ once you've got it
mounted from ops (the boss-install script will set this up).

##### Step 1 - Create a defs file

28 29 30
The defs file will describe some of your setup, such as the hostnames of your
boss and ops nodes, and email addresses that certain types of mail will be sent

32 33
Use the 'defs-example' file in the root of our source distribution as a
template. It contains comments explaining the important variables to set.

35 36 37 38
You'll also need to make a defs file for the web interface. This is found in
the www/ directory of the testbed source tree. Copy example-defs.php3 to
<name>-defs.php3, and put <name> into WWWDEFS in the main defs file. Important
variables in this file are commented as well.

##### Step 2 -  Unpacking and running configure

This works the same as it did on ops:
cd ~/tbobj
~/testbed/configure --with-TBDEFS=/users/ricci/testbed/defs-ricci

##### Step 3 - Running the boss installation script

Jay Lepreau's avatar
Jay Lepreau committed
Again, this works the same as it did on ops, except that you run
install/boss-install in the object tree, instead of ops-install.

51 52 53
Part way through, this script will bail out and prompt you to install some
ports. Some of the ports we need on boss have interactive installations, and
this generally takes a long time, and you want to see what's going on, right?

55 56 57 58 59 60 61 62
So, just cd to /usr/ports/misc/emulab-boss/ and run (as root) a 'make install'.
There are a few things you'll need to know about the ports:
* Installation of the mysql323-server port will fail if the name returned by
  'hostname' doesn't resolve.
* The php4 port will bring up a funky menu system to let you choose some
  features to enable and disable. Enable 'mhash', and leave the rest alone
* The snmp port asks all kinds of silly questions that don't matter, since
  we're not going to be running snmpd on boss. Just take the defaults.

When you're done, re-run the boss-install script.

66 67
Like the ops-install script, boss-install sets up paswordless sudo for anyone
in the wheel group.

##### Step 4 - Installing from source.

71 72 73
In your object directory, do a 'gmake boss-install'. Then, as root, do a
'gmake post-install'. The post-install target needs to run as root, so that
it can make certain scripts setuid, etc.

##### Step 5 - Setting up root ssh from boss to ops

77 78 79 80
The boss node needs to be able to ssh in, as root, to the ops node. To set this
up, copy root's public identity from boss (created by the boss-install script)
to ops's authorized_keys file:
scp /root/.ssh/ ops:/root/.ssh/authorized_keys

##### Step 6 - Filling the database

84 85
See the file setup-db.txt in this directory for instructions on getting the
proper information about your site and nodes into the database.
Leigh B. Stoller's avatar
Leigh B. Stoller committed

##### Step 7 - Other miscellaneous things to set up

89 90
There are a few things we haven't been able to completely automate just yet,
though we hope to soon. 

92 93 94 95 96
DNS configuration - boss-install enables bind on your boss node, but does not
set it up as a server for your domain. We don't have documentation for creating
the zone files, etc yet. Best bet right now is to ask Utah for a copy of
theirs.  Hopefully, there will be a script to auto-generate large portions of
them from the database.

98 99 100 101 102 103 104
SSL certificates - Our apache config file expects to find SSL certificates in:
/usr/local/etc/apache/ssl.crt/www.<sitename>.crt and
(where <sitename> is OURDOMAIN from the configure defs file.) 
Generate a passwordless certificate (up to you if you want to get a 'real' one
from Verisign, etc., or sign your own), and place the files from it in the
above locations.
105 106 107

cvsupd - Minor changes to images can be distributed at boot time with cvsup.
See doc/newimage.txt for an overview of setting up a sup tree. Make sure to
108 109 110 111 112 113 114 115 116 117 118
copy over the old one (if it exists).

dhcpd - Once you've filled out the nodes  interfaces tables (instructions in
setup-db.txt), you need to generate a config file for dhcpd. For this, you use
the dhcpd_makeconf script (installed into /usr/testbed/sbin), which uses the
template file in the dhcpd directory of the source distribution. Make sure to
edit the template file to reflect your local IP addresses, and include all node
types. Place the resulting config file (which dhcpd_makeconf spits to the
standard output), in /usr/local/etc/dhcpd.conf .
NOTE: This template file is for isc-dhcpd 2.x . It needs to be updated to work
with isc-dhcpd 3.x .