setup-ops.txt 5.81 KB
Newer Older
1
#####
2
##### Setting up the Utah Network Testbed software
3
##### Tested on FreeBSD 4.3, FreeBSD 4.5, FreeBSD 4.6, and FreeBSD 4.7
4
#####
5 6 7

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

8
Install FreeBSD on the machine you'll be using for your ops node, using the
9 10 11 12 13 14 15 16 17
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.
18

19
Make sure that you have the network correctly configured.
20

21 22 23
The following directories will need to exist on partitions that have enough
space to hold them:

24 25 26 27 28 29
/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.
30
/proj/        - Needs space for project files. We recommend that this be larger
31 32 33 34 35 36 37 38
			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.
			
39
You may want to enforce quotas on the user-writable filesystems. This is the
Robert Ricci's avatar
Robert Ricci committed
40
main reason you'd want to keep them in separate filesystems (ie. so people can
41
have different /users/ and /proj/ quotas.)
42

43 44 45 46 47 48
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.
49

50 51
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.
52

53 54 55 56 57 58 59 60 61 62
We occasionally run into problems with certain FreeBSD ports. Also, you're going
to want the latest security updates. So, you should at the very least bring
your ports collection up to date using:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cvsup.html

It is also a good idea to bring your base system up to date with the -STABLE
branch.  Instructions for doing this can be found at:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/cutting-edge.html


63
##### Step 1 - Unpacking and running configure
64

65 66
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.
67

68 69
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.
70

71 72 73 74 75
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
76

77
##### Step 2 - Running the ops installation script
78

79
This part is brand-new, so please report any problems with it.
80

81 82 83 84 85 86
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
87 88 89
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.
90

91 92
(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.)
93

94 95 96 97
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.
98

99
##### Step 3 - Installing from source
100

101 102
To install the actual testbed software, simply do a 'gmake ops-install' in your
object directory.
103

104 105 106 107 108 109 110 111 112
(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 .

113
##### Step 4 - Setting up mailing lists
114

115 116 117 118 119
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.
120 121 122 123 124 125

##### 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.