1. 15 May, 2012 1 commit
  2. 07 May, 2012 2 commits
  3. 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
  4. 01 May, 2012 1 commit
  5. 30 Apr, 2012 2 commits
  6. 24 Apr, 2012 1 commit
  7. 21 Apr, 2012 1 commit
  8. 18 Apr, 2012 1 commit
  9. 13 Apr, 2012 1 commit
  10. 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
  11. 09 Apr, 2012 2 commits
  12. 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
  13. 25 Mar, 2012 1 commit
  14. 16 Mar, 2012 1 commit
  15. 15 Mar, 2012 2 commits
  16. 09 Mar, 2012 1 commit
    • Mike Hibler's avatar
      Add a node-default pxe_boot_path to go along with node-type-default. · 99a462a8
      Mike Hibler authored
      As if things weren't hairy enough for the pxe_boot_path, we need a per-node
      default value. This should not be confused with the next_pxe_boot_path or
      pxe_boot_path fields in the nodes table, which is a per-node value but only
      for the lifetime of the current experiment.
      
      We need this new field specifically so that we can switch some, but not all,
      of the d710s over to the TPM-aware pxeboot.
      
      For the record, the select order for setting the filename field in
      dhcpd.conf is:
      
       1. nodes.next_pxe_boot_path for node
       2. nodes.pxe_boot_path for node
       3. "pxe_boot_path" node_attribute for node
       4. "pxe_boot_path" node_type_attribute for node type
       5. don't set (i.e., use the dhcpd.conf global default).
      99a462a8
  17. 06 Mar, 2012 1 commit
  18. 28 Feb, 2012 1 commit
  19. 22 Feb, 2012 1 commit
  20. 08 Feb, 2012 2 commits
  21. 03 Feb, 2012 1 commit
  22. 30 Jan, 2012 5 commits
  23. 23 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      Add support for disk agents. This is just the plumbing, Yathindra is · 95ada2d1
      Leigh B Stoller authored
      doing the real/hard work. Anyway, in your NS file you can do this:
      
      	set newdisk [new Disk $ns]
      	$newdisk set node $n0
      	$newdisk set type foo
      	$newdisk set mountpoint /qq
      	$newdisk set parameters "foo bar fee"
      	$newdisk set command "bla bla bla"
      
      The parameters and command are optional and default to null. Then on
      your node, tmcd returns:
      
      	DISK DISKNAME=newdisk DISKTYPE='foo' MOUNTPOINT='/qq' MOUNTPOINT='foo bar fee' PARAMETERS='bla bla bla'
      
      Note that there is no client support code in this commit.
      95ada2d1
  24. 19 Jan, 2012 1 commit
    • Leigh B Stoller's avatar
      Deprecate the use of jailip in the nodes table, for local dynamic · 1a52760a
      Leigh B Stoller authored
      virtual nodes. We now create an interfaces table entry so that we do
      not special code to find the control network interface. This entry is
      delated along with the node entries when the experiment is swapped
      out.
      
      Of course, we still have existing nodes with jailip entries, so not
      much code was removed, but this saves me from having to add more
      special cases for XEN elabinelab, and at some point we can remove the
      deprecated code.
      1a52760a
  25. 12 Jan, 2012 2 commits
    • Leigh B Stoller's avatar
      Minor fix to previous revision. · fce7f91e
      Leigh B Stoller authored
      fce7f91e
    • Leigh B Stoller's avatar
      The rest of the virt_node_attributes table support. You can do this in · 51552904
      Leigh B Stoller authored
      your NS file:
      
      	$node0 add-attribute jailip 155.98.36.229
      	$node0 add-attribute jailipmask 255.255.252.0
      
      to override the default jail ip assignment. Use this carefully of
      course since there is no checking yet.
      
      You can also do something like this:
      
      	$myboss add-attribute XEN_EXTRADISKS "disk1:10G,disk2:10G,disk3:10G"
      	$myops  add-attribute XEN_EXTRADISKS "disk1:4G,disk2:10G"
      
      which will add these extra disks to your xen containers. Note that
      this requires clientside changes from another commit to be installed
      in the XEN image.
      51552904