##### ##### Setting up the Utah Network Testbed software ##### Tested on FreeBSD 4.3, FreeBSD 4.5, FreeBSD 4.6, and FreeBSD 4.7 ##### ##### Step 0 - OS installation and setup Install FreeBSD on the machine you'll be using for your ops node, using the standard FreeBSD installation process. When asked by the installer, it's best to choose the 'Developer' distribution set - this gets you full sources. The 'X-Developer' distribution set would be fine too, if you want to be able to run X clients from the ops node. When it asks if you want to install the ports collection, answer yes. You don't need to worry about which packages to install (of course, grab your favorite editors, etc.) - the ones our software needs will be installed automatically later. You'll need to partition your filesystems so that you have the proper amount of space for certain directories - see below for details. Make sure that you have the network correctly configured. The following directories will need to exist on partitions that have enough space to hold them: /usr/testbed/ - Needs space for testbed software and logs. A few gigs should be plenty. /users/ - Needs space for user home directories. Amount of space required depends on how many users you expect to have. Generally, though, we suggest that users store large files related to their projects in the /proj directory. /proj/ - Needs space for project files. We recommend that this be larger than /users, to encourage people to store files here, which aids per-project accountability. /groups/ - Needs enough space for files shared by the sub-groups of projects. These are primarily used by classes, if any. /share/ - Exported read-only to all nodes, we use it for providing the source for the FreeBSD and Linux versions we run to experimenters. You may want to enforce quotas on the user-writable filesystems. This is the main reason you'd want to keep them in separate filesystems (ie. so people can have different /users/ and /proj/ quotas.) Make sure that, no matter how you decide to partition things up, you make symlinks to the appropriate places. ie., if you make one big filesystem called /z that has /users, /proj, and /groups in it, make sure you: ln -s /z/users /users ln -s /z/proj /proj ... etc. It's simplest if you don't create any users yet, and just log in a root for the time being. Our software will create users later, once you get boss set up. ##### Step 1 - Unpacking and running configure At this point, you'll need to make a 'defs' file - see setup.txt for instructions for doing so. You'll use the same defs file on boss and ops. Unpack the testbed source, and run it's configure script. Use the --with-TBDEFS option to configure to give it the path to your defs file. For example, I have the testbed source in ~/testbed, my defs file in /users/ricci/testbed/defs-ricci, and use the ~/tbobj directory to do my builds in: cd ~/tbobj ~/testbed/configure --with-TBDEFS=/users/ricci/testbed/defs-ricci ##### Step 2 - Running the ops installation script This part is brand-new, so please report any problems with it. In the object tree you've configured (in my example above, ~/tbobj), there's an 'install' subdirectory, with a script called 'ops-install'. Just run this script as root. It will take care of installing ports, and doing various other configuration of FreeBSD required to make it into an ops node. The script is designed so that you can run it as many times as you want, and it'll just skip stuff it's already done. If it fails, send the output to Utah so that we can fix it up. If it succeeds, follow any other instructions it may have. The script will tell you to reboot the machine, but you can wait until after you do the next step to do so, if you want. (You may have to set the executable bit on this script, since configure won't - I'd like to get this solved at some point.) You should be aware that, among other things, this script sets up sendmail, and sets up password-less 'sudo' for anyone in the 'wheel' group. If you don't want these for security reasons, you can undo them after the installation script is finished. ##### Step 3 - Installing from source To install the actual testbed software, simply do a 'gmake ops-install' in your object directory. (Note: If you're logged in as root, /usr/local/bin, where gmake lives on FreeBSD, may not be in your path.) If you'll be using Cyclades boards to use the ops as a serial console server, you'll also want to do a 'gmake tipserv-install' in the object directory. In addition, you'll need to build a custom kernel with the appropriate driver (you may even need to get patches from Utah for some boards). You'll also need to set up a few things (not yet automated), described in doc/adding_nodes.txt . ##### Step 4 - Setting up mailing lists Optional. The ops-install script set up some mailing lists for the email addresses you set up in the defs file, in /etc/mail/lists . If you want to run these mailing lists off your ops node, you can put some people in them now. These are just standard sendmail list files - a list of addresses and/or archive files, one per line. ##### Step 5 - Other miscellaneous things to set up hosts file - It's a good idea to put boss' name/IP address in /etc/hosts - ops is usually booted before boss (since the latter NFS mounts the former), so this will help things that want to look up boss' name before it boots.