== Overview == Since users is the file server, it is important that we install and reboot it first. We can then proceed with the boss installation, since part of the boss installation involved mounting directories exported during users setup. == Make sure your network is working first == All network traffic between boss and users goes by default over their private networks. It is important that your boss and users images are able to ping each other through router. == Build Process == The original installation documentation is here. I strongly recommend reading through it in order to understand where the DETER install process is evolving from: https://users.emulab.net/trac/emulab/wiki/InstallRoot == Getting access to the source code == We currently use a private github repository for the testbed codebase. Please contact us for access. == Building the testbed software == Create a build user of your choice on boss and users. If you are unfamiliar with FreeBSD, the process for creating users is laid out in the [http://www.freebsd.org/doc/handbook/ FreeBSD handbook]. Make sure the user is in the group 'wheel' so sudo can be used. Login as this user and clone the testbed repository: {{{ su -l git clone https://github.com/deter-project/testbed.git }}} Create the object tree directory. {{{ mkdir ~/obj }}} Now go into the ~/obj directory. {{{ cd ~/obj ../testbed/configure --with-TBDEFS=/home//testbed/defs- }}} This will create the object tree for the testbed. The install process is handled by two scripts. One is boss-install and the other is users-install, for boss and users. '''You must install and reboot the users node first.''' {{{ cd ~/obj/install sudo perl ./[boss|users]-install }}} If the install process complains about an outdated metapackage, please refer to the next section. The output of the build script will look like this: {{{ [jjh@users ~/obj/install]$ sudo perl users-install WARNING: This script is ONLY intended to be run on a machine that is being set up as a dedicated users node. Continue? [y/N] y Creating users and groups | Creating tbadmin group [ Succeeded ] (16:00:42) +-----------------------------------------------> [ Succeeded ] (16:00:42) Creating /usr/testbed [ Succeeded ] (16:00:42) Setting directory permissions | /usr/testbed [ Succeeded ] (16:00:42) | /users [ Succeeded ] (16:00:42) | /proj [ Succeeded ] (16:00:42) | /groups [ Succeeded ] (16:00:42) | /share [ Succeeded ] (16:00:42) +-----------------------------------------------> [ Succeeded ] (16:00:42) Installing main package [ Skipped (Package already installed) ] Applying patches [ Succeeded ] (16:00:42) Adding testbed content to rc.conf [ Succeeded ] (16:00:42) Adding boss/ops/fs IP addresses to /etc/hosts [ Succeeded ] (16:00:42) Checking to make sure names for boss/ops/fs resolve | users.mini-isi.deterlab.net [ Succeeded ] (16:00:42) | users [ Succeeded ] (16:00:42) | ops [ Succeeded ] (16:00:42) | fs [ Succeeded ] (16:00:42) | boss.mini-isi.deterlab.net [ Succeeded ] (16:00:42) | boss [ Succeeded ] (16:00:42) +-----------------------------------------------> [ Succeeded ] (16:00:42) Configuring sendmail | Setting up /etc/mail/local-host-names [ Succeeded ] (16:00:42) | Setting up mailing lists | | Creating /etc/mail/lists [ Succeeded ] (16:00:42) | | Creating mailing list files | | | testbed-ops [ Succeeded ] (16:00:42) | | | testbed-logs [ Succeeded ] (16:00:42) | | | testbed-www [ Succeeded ] (16:00:42) | | | testbed-approval [ Succeeded ] (16:00:42) | | | testbed-audit [ Succeeded ] (16:00:42) | | | testbed-stated [ Succeeded ] (16:00:42) | | | testbed-testsuite [ Succeeded ] (16:00:42) | | | testbed-ops [ Skipped (File already exists) ] | | | testbed-logs [ Skipped (File already exists) ] | | +-------------------------------------------> [ Succeeded ] (16:00:42) | | Adding lists to /etc/mail/aliases [ Succeeded ] (16:00:42) | | Running newaliases [ Succeeded ] (16:00:42) | +---------------------------------------------> [ Succeeded ] (16:00:42) +-----------------------------------------------> [ Succeeded ] (16:00:42) Setting up exports | Creating /etc/exports.head [ Succeeded ] (16:00:42) | HUPing mountd [ Skipped (mountd not running) ] +-----------------------------------------------> [ Succeeded ] (16:00:43) Setting up NFS mounts [ Skipped (FSes are local) ] Setting up syslog | Editing /etc/syslog.conf [ Succeeded ] (16:00:43) | Creating /var/log/tiplogs [ Succeeded ] (16:00:43) | Creating log directory [ Succeeded ] (16:00:43) | Creating log files | | /var/log/logins [ Succeeded ] (16:00:43) | | /var/log/tiplogs/capture.log [ Succeeded ] (16:00:43) | | /var/log/mountd.log [ Succeeded ] (16:00:43) | | /usr/testbed/log/pubsubd.log [ Succeeded ] (16:00:43) | | /usr/testbed/log/elvin_gateway.log [ Succeeded ] (16:00:43) | +---------------------------------------------> [ Succeeded ] (16:00:43) | Setting up /etc/newsyslog.conf [ Succeeded ] (16:00:43) +-----------------------------------------------> [ Succeeded ] (16:00:43) Adding cron jobs | Editing /etc/crontab [ Succeeded ] (16:00:43) | HUPing cron [ Succeeded ] (16:00:43) +-----------------------------------------------> [ Succeeded ] (16:00:43) Editing /usr/local/etc/sudoers to allow wheel group[ Succeeded ] (16:00:43) Setting up Samba | Installing smb.conf[.head] [ Succeeded ] (16:00:43) +-----------------------------------------------> [ Succeeded ] (16:00:43) Allowing root ssh | Permitting root login through ssh [ Succeeded ] (16:00:43) | Making root's .ssh directory [ Skipped (File already exists) ] | Installing temporary root ssh public key [ Succeeded ] (16:00:43) +-----------------------------------------------> [ Succeeded ] (16:00:43) Setting up rc.d scripts | Installing testbed RC scripts | | Removing port version of elvind.sh [ Skipped (File does not exist) ] | +---------------------------------------------> [ Skipped ] (16:00:43) +-----------------------------------------------> [ Skipped ] (16:00:43) ---------------------------------------------------------------------- Installation completed succesfully! Please reboot this machine before proceeding with boss setup Local mailing lists have been created, with no members, in /etc/mail/lists . Please add members to the following lists: testbed-ops@mini-isi.deterlab.net testbed-logs@mini-isi.deterlab.net testbed-www@mini-isi.deterlab.net testbed-approval@mini-isi.deterlab.net testbed-audit@mini-isi.deterlab.net testbed-stated@mini-isi.deterlab.net testbed-testsuite@mini-isi.deterlab.net testbed-ops@mini-isi.deterlab.net testbed-logs@mini-isi.deterlab.net [jjh@users ~/obj/install]$ }}} == Setup mailing lists on users == You will have to add someone to the mailing lists in '''/etc/mail/lists''' on users after the install: {{{ users# cd /etc/mail/lists users# foreach i ( `ls testbed-*` ) foreach? echo "admin@yoursite.net" >> $i foreach? end }}} == Updating the DETER meta packages == The dependencies are installed via a special meta package. This is already installed on the stock images, but if you ever need to update: {{{ cd testbed/install/ports sudo make install cd /usr/ports/misc/instant-deter sudo make deinstall sudo make reinstall }}} == Updating the codebase == In order to update the codebase, running the install script is not necessary. {{{ cd ~/testbed git pull cd ~/obj ../testbed/configure --with-TBDEFS=/home/jjh/testbed/defs- gmake gmake [boss|users]-install }}}