1. 13 Jul, 2012 1 commit
  2. 11 Jul, 2012 1 commit
  3. 03 Jul, 2012 1 commit
  4. 02 Jul, 2012 4 commits
  5. 29 Jun, 2012 1 commit
  6. 26 Jun, 2012 1 commit
  7. 21 Jun, 2012 1 commit
  8. 12 Jun, 2012 3 commits
  9. 11 Jun, 2012 1 commit
  10. 07 Jun, 2012 1 commit
    • Leigh B Stoller's avatar
      New script, clone_image to simplify create/snapshot from a node. · b01c991d
      Leigh B Stoller authored
      clone_image is a wrapper around newimageid_ez and create_image, that
      simplifies the most common operation; creating a new imageid derived
      from the image/os that is currently running in the node, and then
      taking a snapshot of the node. So for example, if node pcXXX is
      running image FREEBSD, and you want to create a custom image from that
      node, all you need to do:
      
      	boss> clone_image myfreebsd pcXXX
      
      which will create the new descriptor, deriving everything from the
      FREEBSD image on the node, and then take a snapshot from pcXXX. If
      the descriptor already exists, just take the snapshot.
      
      So what if you do:
      
      	boss> clone_image FREEBSD pcXXX
      
      well, the image is always looked up in the project the node is
      currently attached to, so in fact a new descriptor is created in that
      project, and you do not actually overwrite an image from some other
      project. 
      
      I've added some locking to images to prevent concurrent snapshots.
      This seemed like a good idea since this script is going to be used
      from the ProtoGeni interface. More on this in another commit.
      b01c991d
  11. 06 Jun, 2012 2 commits
  12. 18 May, 2012 1 commit
  13. 17 May, 2012 1 commit
  14. 16 May, 2012 1 commit
    • Leigh B Stoller's avatar
      Another protogeni checkbox; scriptify and simplify adding "special" · cf517af6
      Leigh B Stoller authored
      devices with network interfaces. Emulab's spp and bbg nodes are
      examples, but I did all that by hand inserting sql. An spp node is a
      shared node with some interfaces. Users can allocate one or more of
      those interfaces and establish vlans to the interfaces. The node is a
      "fakenode" in "shared" mode, and everything else falls out. The mapper
      assigns virtual nodes until all of the interfaces are allocated,
      snmpit does its work on the interfaces, and the user then does the
      rest.
      
      Anyway, to added a special device:
      
        boss> wap addspecialdevice -s -t goober goober1
      
      The -t argument is the name of the node type, created if it does not
      exists. The last argument is the name of the fakenode to create in the
      DB. The -s option says the special device is shared. Without -s, the
      device is allocated exclusively.
      
      Then to add interfaces to the device:
      
        boss> wap addspecialiface -b 1Gb -s cisco4,100,100 goober1 eth0
      
      The -b option is the speed (either 100Mb or 1Gb). The -s option is the
      switch side of the interface (switchname,card,port). The last two
      arguments are the nodename and iface name for the interfaces table.
      
      After the interface and wires table entry are added to the DB, snmpit
      is called to put the switch port into tagged mode (if the node is
      shared). To skip the snmpit step, add the -t option.
      cf517af6
  15. 15 May, 2012 1 commit
  16. 07 May, 2012 2 commits
  17. 03 May, 2012 2 commits
    • Leigh B Stoller's avatar
      Add support for fully initializing the ilo on geni rack nodes. · 164da3ba
      Leigh B Stoller authored
      The basic operational model is as follows.
      
      * We turn the nodes on.
      
      * Since there is nothing on the disks, they will fall through to
        booting from the PXE and will boot the newnode MFS. They all check
        in.
      
      * We run Jon's script that adds the nodes. They are now in hwdown,
        still nothing on the disks.
      
      * We run my script, which is driven from a datafile we are supposed to
        get from HP. This script has the ilomac, ilopswd, control mac. I
        will add another column initially; the permanent IP to assign to the
        ilo. This script does:
      
       + Reads the datafile to get all the stuff.
       + Reads the dhcpd.leases file to find the temporary IPs of the ilos.
       + Finds the corresponding nodes in the DB.
       + Sends over an XML file that does the following:
           - Add the elabman user.
           - Add local root's dsa pub key to the new elabman user.
           - Add Utah's root dsa key to the Administrator user
           - Sets the power on mode to auto (so that the node turns on!).
           - Sets the idle timeout to 2 hours.
       + Sets the bootorder so that PXE is first. This has to be done
         with ssh and some expect stuff I culled from power_ilo. Sigh.
       + Calls out to another script that adds the ilo interface to the
         DB (this is the management_iface script I did last month).
       + Sends another XML file that tells the ilo to reset itself, so that
         it picks up its permanent IP address.
      
      * Now we can free the nodes from hwdown.
      164da3ba
    • Leigh B Stoller's avatar
      Give management ports a hostname so that we know what it is · f00b2176
      Leigh B Stoller authored
      in the conf file.
      f00b2176
  18. 01 May, 2012 1 commit
  19. 30 Apr, 2012 2 commits
  20. 24 Apr, 2012 1 commit
  21. 21 Apr, 2012 1 commit
  22. 18 Apr, 2012 1 commit
  23. 13 Apr, 2012 1 commit
  24. 11 Apr, 2012 1 commit
    • Leigh B Stoller's avatar
      So this commit allows a vlan to be "shared" bewteen experiments. By · dae29101
      Leigh B Stoller authored
      shared, I mean that an experiment can request that a port be put into
      a vlan belonging to another experiment. This started out as a hack to
      support openflow enabled vlans in Geni, but then I got a request to
      make it a little more general purpose. You all know how that goes.
      
      Okay, say you have an experiment E1 in some project and that
      experiment has a link or lan call "lan0". You want other experiments
      to be able to stick ports in that vlan. On boss, you would do this
      after E1 is swapped in:
      
      boss> wap sharevlan -o testbed,E1 lan0 mysharedlan
      
      The -o option says to make the vlan open to anyone; without that
      option, only admins can swap in an experiment that requests a port in
      lan0.  The token "mysharedlan" is just a level of indirection for the
      NS file (or rspec).
      
      Next you create a new experiment E2, and in your NS file:
      
      	$ns make-portinvlan $n1 "mysharedlan"
      
      which says to create a lan with a interface on node n1, in the vlan
      named by the token mysharedlan. The token keeps specific pid/eids out
      of the NS file. 
      
      When E2 is swapped in, assign does its thing, and the selected port is
      added to the members list for lan0 in testbed,E1 and then we call
      snmpit with the syncvlansfromtables (-X) option to get the port added.
      
      When E2 is swapped out, we undo the members list and call snmpit with
      the -X option again.
      
      The access issue is a bit of hack of course (open or admins) but I did
      not want to invent a new permission mechanism (yet).
      
      And of course, this is still a work in progress.
      dae29101
  25. 09 Apr, 2012 2 commits
  26. 27 Mar, 2012 5 commits
    • Leigh B Stoller's avatar
      Bunch of changes for "management" interfaces (ilo,drac,etc); make · 85b81867
      Leigh B Stoller authored
      management interfaces more of a first class citizen instead of a
      hack. New script:
      
      management_iface -t <type> -a [key|pswd] [-s <switchinfo>]
                              <node_id> mac IP arg1 arg2
      management_iface -r <node_id>
        -h       This message
        -t type  Management type; ilo, ilo2, drac
        -s info  Optional switch info; switch,card,port
        -s -     Search output of switchmac to find switch info
        -a pswd  Password auth; provide login and password.
        -a key   SSH key auth; provide login and key path.
        -r       Remove management interface from DB.
      
      which adds the management interface to the database (interfaces,
      outlets and outlets_remoteauth. Optionally adds the wires table
      entry if you add -s option. Uses switchmac to find the switch info or
      you can specify it on the command line. So for example, here is what I
      did to add the ilo2 interface for a node:
      
      management_iface -t ilo2 -a pswd -s - pc1 e8:39:35:ae:c9:7c \
                       155.98.34.100 elabman mypasswd
      or
      management_iface -t ilo2 -a key -s - pc1 e8:39:35:ae:c9:7c \
                       155.98.34.100 elabman /root/.ssh/somekey
      
      Of course someone had to have added the elabman user and key or
      password to the ilo config via its interface. 
      
      * dhcpd_makeconf will add local node management interfaces to the
        config file. We can set them to dhcp instead of hardwiring the IP in
        the management interface.
      
      * The DB changes add a management type to the enums in the interfaces
        and wires table, and updates the existing interface entries.
      85b81867
    • Leigh B Stoller's avatar
    • Leigh B Stoller's avatar
      db6cb00d
    • Leigh B Stoller's avatar
    • Leigh B Stoller's avatar
      21044290