1. 19 Jun, 2015 1 commit
  2. 12 Jun, 2015 1 commit
  3. 02 Jan, 2014 1 commit
    • Mike Hibler's avatar
      Attempt to auto-configure NTP for server machines at install time. · cd4a03a5
      Mike Hibler authored
      The template configurations in the new ntpd subdir also address the
      recent NTP amplification attacks that have been going on recently.
      
      NTP configuration is controlled by a few defs-* variables:
      
      NTPSERVER: boss|ops|fs|<external-server-name-or-IP>
        Default: "ops"
        Normally, one of boss, ops, or fs is designated as a local NTP server
        but this can be set to a fully qualified name of some other machine.
        If NTPSERVER is set to an external server, then boss/ops/fs are made
        clients of that server just as any testbed node is.
      
      EXTERNAL_NTPSERVER[1-4]: <external-server-name-or-IP>
        Default: "[0-3].pool.ntp.org"
        If NTPSERVER is one of boss/ops/fs, then these values are used as the
        upstream servers for the local server. These can be changed to four of
        your favorite NTP servers.
      
      NTPDRIFTFILE: <path>
        Default: "/var/db/ntp.drift"
        If NTPSERVER is one of boss/ops/fs, then this is the name of the drift
        file for the local server.
      cd4a03a5
  4. 21 Dec, 2012 1 commit
  5. 31 Aug, 2012 1 commit
  6. 13 Jul, 2012 1 commit
  7. 02 Jul, 2012 1 commit
  8. 07 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Add a NODECONSOLE defs* variable. · 2b46ad88
      Mike Hibler authored
      This is not as general or as useful as you might think.
      Right now it simply controls what device gets used as console when
      customizing the MFSes. "sio" is the default. Other choices correspond
      to pxeboot variants: sio2, vga, null. Choosing vga also sets the magic
      VGAONLY setting in the frisbee MFS ensuring that any customized (via slicefix)
      FreeBSD image doesn't try to use the serial port as console.
      
      A real solution for choosing node consoles would not be per-testbed.
      It would be per-node-type and per-node. Right now the console type is
      selected in that fashion via a combination of the pxe_boot_path and
      frisbee/admin MFS OSIDs. At some point we should make the console setting
      explicit.
      2b46ad88
  9. 06 Dec, 2011 1 commit
  10. 30 Nov, 2011 1 commit
  11. 27 Sep, 2011 2 commits
  12. 27 May, 2011 1 commit
  13. 11 Jan, 2011 1 commit
    • Mike Hibler's avatar
      Found a patch that will make the SelfLoader work with perl 5.10.1. · f0ea7d23
      Mike Hibler authored
      Repeating myself since not everything got committed last time...
      
      In the lastest version of SelfLoader they fixed the taint problem.  It is
      literally one line of code (plus updating version string) so I just made
      a patch.  Also, fixup boss/ops-install to apply the patch and change the
       default to use the SelfLoader again.
      f0ea7d23
  14. 22 Dec, 2010 1 commit
  15. 20 Oct, 2010 1 commit
    • Mike Hibler's avatar
      Support for no shared filesystem (unsupport for shared filesystem?) and · c1c1bce2
      Mike Hibler authored
      (eventual) support for NFS servers without race conditions!
      
      This means no NFS between nodes and ops/fs. There are still NFS mounts of
      ops on boss however.
      
      Added new defs-* variable NOSHAREDFS, which when set non-zero will disable
      the export of NFS filesystems to nodes.  Involved lots of little changes:
      
       * /users, /proj, and /share filesystems are not exported to nodes.
      
       * Returned mount info now includes an FSTYPE key which will be set to "LOCAL"
         if NOSHAREDFS is in effect (by default it is set to "NFS-RACY"; more on
         this later).  In the case where it is set to LOCAL, the other mount lines
         no longer contain REMOTE=foo settings.  Because of this change,
         THE TMCD VERSION NUMBER HAS BEEN BUMPED TO 32.
      
       * The client rc.mounts script will now create local versions of /users/*,
         /proj/<pid>, and /share when FSTYPE=LOCAL.  It first runs mkextrafs to
         create a large partition for these, since someday we will likely want
         to pre-populate these with a non-trivial amount of data.  Right now,
         the only thing that is put in the user's homedir is the standard dotfiles
         for the OS and the Emulab authorized_keys file (so you can login).
      
       * Linktest had to be modified to fetch the various results files (via
         loghole) rather than just assuming they were in /proj.  And also changed
         to invoke tevc with the local copy of the event key so it won't try to
         read it over NFS.
      
       * create_image was modified to ssh to the node and run the imagezip
         command, capturing the output of ssh.  This is controlled via the "-s"
         option which defaults to on for a NOSHAREDFS system, but can also be
         used on a normal system.
      
       * elabinelab's can be configured with/without a shared FS via the
         CONFIG_SHAREDFS attribute (note polarity change) which defaults to 1.
      
      Another new defs-* variable, NFSRACY, will some day allow you to specify
      (by setting to 0) that your NFS server does NOT have the nefarious mountd
      race condition when changing /etc/exports.  Currently, this defaults to 1
      since all versions of FreeBSD supported as an "fs" node have this "feature."
      Rumor has it that FreeBSD 8 does not have this problem nor, presumably,
      would a Linux NFS server.
      
      The only use of this variable right now is to set the FSTYPE returned by the
      tmcd "mounts" call, which in turn is used by one client script, rc.topomap
      (via a libsetup function) to determine whether it should try copying
      the topo file multiple times.
      
      Random: add python2.6 to list of python's checked for in configure.
      Random: resync defs-example-privatecnet with defs-example.
      Random: did a little code-pissin here and there.
      c1c1bce2
  16. 09 Feb, 2010 1 commit
  17. 10 Jul, 2009 1 commit
  18. 02 Mar, 2009 1 commit
    • Leigh Stoller's avatar
      A bunch of changes for a "standalone" clearinghouse. Presently this · 60f04310
      Leigh Stoller authored
      its really a hugely stripped down Emulab boss install, using a very
      short version of install/boss-install to get a few things into place.
      
      I refactored a few things in both the protogeni code and the Emulab
      code, and whacked a bunch of makefiles and configure stuff. The result
      is that we only need to install about 10-12 files from the Emulab
      code, plus the protogeni code. Quite manageable, if you don't mind
      that it requires FreeBSD 6.X ... Still, I think it satisfies the
      requirement that we have a packaged clearinghouse that can be run
      standalone from a running Emulab site.
      60f04310
  19. 21 Oct, 2008 1 commit
  20. 25 Jul, 2008 1 commit
  21. 06 Mar, 2007 1 commit
  22. 14 Dec, 2006 1 commit
  23. 20 Oct, 2006 1 commit
    • Mike Hibler's avatar
      Wow, this should make me look important! · afa5e919
      Mike Hibler authored
      Two-day boondoggle to support "/scratch", an optional large, shared filesystem
      for users.  To do this, I needed to find all the instances where /proj is used
      and behave accordingly.  The boondoggle part was the decision to gather up all
      the hardwired instances of shared directory names ("/proj", "/users", etc.)
      so that they are set in a common place (via unexposed configure variables).
      This is a boondoggle because:
      
      1. I didn't change the client-side scripts.  They need a different mechanism
         (e.g., tmcd) to get the info, configure is the wrong way.
      
      2. Even if I had done #1 it is likely--no, certain--that something would
         fail if you tried to rename "/proj" to be "/mike".  These names are just
         too ingrained.
      
      3. We may not even use "/scratch" as it turns out.
      
      Note, I also didn't fix any of the .html documentation.  Anyway, it is done.
      To maintain my illusion in the future you should:
      
      1. Have perl scripts include "use libtestbed" and use the defined PROJROOT(),
         et.al. functions where possible.  If not possible, make sure they run
         through configure and use @PROJROOT_DIR@, etc.
      
      2. Use the configure method for python, C, php and other languages.
      
      3. There are perl (TBValidUserDir) and php (VALIDUSERPATH) functions which
         you should call to determine if an NS, template parameter, tarball or
         other file are in "an acceptable location."  Use these functions where
         possible.  They know about the optional "scratch" filesystem.  Note that
         the perl function is over-engineered to handles cases that don't occur
         in nature.
      afa5e919
  24. 06 Sep, 2006 1 commit
    • Mike Hibler's avatar
      Tweak to example. · 69fcce51
      Mike Hibler authored
      Make a version of the example which shows an unroutable control network.
      69fcce51
  25. 14 Sep, 2005 1 commit
    • Mike Hibler's avatar
      Changes related to allowing seperate 'fs' (file server) node. · c53d5827
      Mike Hibler authored
      Entailed new instructions for manual setup as well as integration into
      elabinelab framework.  First, the manual path:
      
      setup.txt, setup-boss.txt, setup-ops.txt and new setup-fs.txt:
          Updated to reflect potential for separate fs node.  The org here
          is a little dicey and could be confusing with ops+fs vs. ops and fs.
          Has not been field tested yet.
      
      */GNUmakefile.in: new fs-install target.
      
      configure, configure.in, defs-*:
          Somewhat unrelated, make min uid/gid to use be a defs setting.
          Also add config of fs-install.in script.
      
      boss-install.in, ops-install.in and new fs-install.in:
          Handle distinct fs node.  If you have one, fs-install is run before
          ops-install.  All scripts rely on the defs file settings of FSNODE
          and USERNODE to determine if the fs node is seperate.
      
      utils/checkquota.in:
          Just return "ok" if quotas are not used (i.e., if defs file FS_WITH_QUOTA
          string is null.
      
      install/ports/emulab-fs:
          Meta port for fs node specific stuff.  Also a patch for the samba port
          Makefile so it doesn't drag in CUPs, etc.  Note that the current samba
          port Makefile has this change, I am just backporting to our version.
      
      Elabinelab specific changes:
      
      elabinelab-withfs.ns:
          NS fragment used in conjunction with
      	tb-elab-in-elab-topology "withfs"
          to setup inner-elab with fs node.
      
      elabinelab.ns:
          The hard work on the boss side.  Recognize seperate-fs config and handle
          running of rc.mkelab on that node.  fs setup happens before ops setup.
      
      rc.mkelab:
          The hard work on the client side.  Recognize FsNode setup as well as
          differentiate ops+fs from ops setup.
      
      Related stuff either not part of the repo or checked in previously:
          emulab-fs package
      c53d5827
  26. 04 Aug, 2005 2 commits
  27. 08 May, 2005 1 commit
  28. 05 May, 2005 1 commit
    • Leigh Stoller's avatar
      Deprecate --enable-windows to configure and replace with WINSUPPORT=0/1 · 5cdffff9
      Leigh Stoller authored
      in the defs file, so that it is easier to export a default value.
      The local defs-default turns it on for all of us, while the default in
      configure.in is off. It is currently off by default in defs-example.
      
      I have left the --enable-windows and --disable-windows arguments for
      backwards compatability; they just override whatever the defs file
      says but otherwise have no effect if not specified.
      5cdffff9
  29. 07 Jan, 2005 2 commits
    • Mike Hibler's avatar
      We don't have enough config time variables yet, so I added: · 2f6a197d
      Mike Hibler authored
      	FSNODE_IP
      	EXTERNAL_FSNODE_IP
      
      which default to ops' IP address if not set.  This allows for separate
      ops/fs nodes, a config Aero has.
      
      Also push some IP addresses (boss, ops, fs) into config.h so they can
      be used in C programs.  Specifically tmcd for returning values of
      "firewall variables" that can be used in default firewall rules.
      But I will likely wind up putting the var/value pairs in the DB rather
      than compiling them into tmcd.
      2f6a197d
    • Leigh Stoller's avatar
      Named setup gets a serious collagen injection ... As per Mike/Rob · cff2421e
      Leigh Stoller authored
      request, beef up named setup so that sites like DETER are handled
      properly. I have added 4 new defs variables:
      
          #
          # If your boss/ops nodes are multihomed (and typically, one of the
          # networks is a public routable network, and the other is an internal
          # unroutable network), then define the the external addresses here (and
          # the internal addresses above).
          #
          EXTERNAL_BOSSNODE_IP=$BOSSNODE_IP
          EXTERNAL_USERNODE_IP=$USERNODE_IP
      
          #
          # As above, if you have internal and external networks, define the
          # external network here, and the internal network above.
          #
          EXTERNAL_TESTBED_NETWORK=$TESTBED_NETWORK
          EXTERNAL_TESTBED_NETMASK=$TESTBED_NETMASK
      
      which if not set default to the internal values. When the external and
      internal networks are different, generate two sets of reverse zone
      files and two forward files (one internal and one external).
      cff2421e
  30. 21 Dec, 2004 1 commit
  31. 15 Nov, 2004 1 commit
  32. 08 Nov, 2004 1 commit
  33. 15 Jun, 2004 1 commit
  34. 06 Jan, 2004 1 commit
  35. 03 Sep, 2003 1 commit
  36. 09 Apr, 2003 1 commit
    • Mac Newbold's avatar
      Add new script to notify users when they are over their quota. Runs from · 38310b4e
      Mac Newbold authored
      cron daily, on the fs node (ops) as root. Uses lots of configure variables
      so that it does the right thing in any installation, without any
      customization.
      
      One possible caveat regarding quotas: If FS_NODE != USERNODE, they don't
      have a login on the fs machine. So checking their quota won't work unless
      the rpc.rquotad(8) daemon is running on FS_NODE, which we currently don't
      do.
      
      In order to do this right, I had to add a new configure var,
      FS_WITH_QUOTAS, that has a space separated list of file systems that have
      quotas enabled. (Ie the default is 'FS_WITH_QUOTAS="/q /users"'.) It
      doesn't have any default, since I couldn't come up with a reasonable one.
      All the defs files have been updated appropriately to define this new
      variable.
      38310b4e
  37. 02 Apr, 2003 1 commit
    • Mac Newbold's avatar
      Massive reworking of our structure for defs files. · 09eb5852
      Mac Newbold authored
      Before:
      The main defs file (ie for configure) had an entry for WWWDEFS that
      pointed to a <@WWWDEFS@>-defs.php3 file in the www/ directory. The www
      defs file loaded some values about web pages, URLs, and some web
      configuration parameters.
      
      Problem:
      Anything that was only in the www defs file was not accessible in the rest
      of the universe (ie perl, C, and any other non-web-page scripts). For
      instance, you couldn't have a perl script send an email to a user with a
      link to the web site.
      
      Solution:
      Nuke all the www-defs files, move any important values into the main
      configure, and change the web defs infrastructure to respect that. This
      also meant adding about 3 lines each to all of the configure defs files.
      (There really are about 10 new values you can change in your defs file,
      but in almost all cases, the default values are the right thing.)
      
      Upgrading:
      External sites will need to move a few variables from their www-defs file
      into their configure defs file. The example file should make it pretty
      obvious. They may also want to customize some of the other vars that are
      mentioned in configure.in and www/defs.php3.in .
      09eb5852