Changes between Version 1 and Version 2 of FeddConfig


Ignore:
Timestamp:
Dec 10, 2008 3:01:27 PM (15 years ago)
Author:
faber
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FeddConfig

    v1 v2  
    1515first, and then the access databases.
    1616
     17== Main Configuration File (`fedd.conf`) ==
     18
    1719The main configuration file is in `/usr/local/etc/fedd.conf` by default,
    1820though the `--config` option can redirect it.  It of the basic format
     
    2123use any of the substitution tricks in the python documentation as well.
    2224There are 5 sections, one for each component and one for global options.
     25
     26=== Global Options ===
    2327
    2428Global options are in the section following the [globals] header.  The
     
    4549database, but adds to it.
    4650
    47 Access control sections follow the [access] header.  The following are
    48 valid attributes:
     51=== Access Options ===
     52
     53Access control sections follow the [access] header.  These attributes concern the how `fedd` grants access to remote experimenters through their `fedd`.  Some of the parameters are directly related to whether access is granted and some are parameters returned to the requester so it can manipulate the resources once granted.
     54The following are valid attributes:
    4955
    5056 '''accessdb'''::
     
    5965  Allow this fedd to act as a proxy for others in making access requests.  This
    6066  functionality is in development and ''not'' intended for use yet.
     67 '''boss'''::
     68  Hostname to report as boss to remote testbeds granted access.  A requesting `fedd` uses this to configure internals of the
     69  federated experiment.  This is just the first component of the name, the '''domain''' option provides the rest.
    6170 '''cert_file'''::
    6271  Certificate used to assert identity of the access component.  It uses this
    63   certificate when proxying requests.
     72  certificate when proxying requests. Note that the certificates used in the [allocate] section are used to contact a remote alloaction `fedd`.
    6473 '''cert_pwd'''::
    6574  Password for the private key in '''cert_file'''.
     75 '''domain'''::
     76  The trailing (common) parts of the domain name for various hosts.  Returned to the requester to allow manipulation of resources.
     77 '''eventserver'''::
     78  Hostname of the machine that forwards events in this testbed. Returned to the requester to allow manipulation of resources.
     79 '''fileserver'''::
     80  Hostname of the machine that serves user files in this testbed. Returned to the requester to allow manipulation of resources.
     81 '''log_level'''::
     82  The level of logging to produce from this component.  One of `debug`, `info`, `warning`, `critical`, and `error`.  See the [http://www.python.org/doc/current/library/logging.html standard python logging system] for details.
    6683 '''project_priority'''::
    6784  When considering two possible resolutions of wildcarded access control db
     
    7592  a file containing the trusted CAs used for SSL validation.  If this is not
    7693  present, no certificate path checking is done.
     94 '''uri'''::
     95  If present this gives the uri of the `fedd` that will perform the manipulation of the local project database to grant and revoke access to the testbed.  In installations where `fedd` runs on both users and boss, this will tell the users `fedd` where to reach the boss `fedd`.  The certificates and trusted certificates specified in the [allocate] section establish the identity of this `fedd` when communicating with the remote `fedd`.  The certificates in the [access] section are used for proxying access requests only.
    7796
     97=== Allocation Options ===
     98
     99The [allocation] section controls how Emulab project allocation is carried out on the host where `fedd` is running.  If the '''uri''' option is set in the [access] section, the [allocation] section defined the parameters used to communicate with the remote `fedd`.  If not, project allocation will occur on this machine and the parameters apply to the manipulation of the local Emulab state to grant access.
     100
     101The following options are valid:
     102
     103 '''allocation_level'''::
     104  This option defines what `fedd` will try to do to grant access.  The following are valid choices:
     105
     106
     107   '''dynamic_projects'''::
     108    Add new projects and users to the local Emulab in response to requests.  What users and projects and who may successfully request them is a function of the access DB below.  The access component decides what projects and users to add and the allocation component does the work.
     109   '''dynamic_keys'''::
     110    No projects or users are added to the local Emulab, but addtional keys may be granted access to user accounts and projects may have their access rights expanded.  Again the access component decides which users and projects to expand and the allocation system does so.
     111   '''confirm_keys''':
     112    The local Emulab is never changed, but the allocating `fedd` confirms that the users specified may be accessed by the given keys.  In effect, it confirms that the if the changes were requested, they would succeed.
     113 '''addpubkey'''::
     114  Path to the `addpubkey` Emulab command.  Only useful for local allocation.  The default of `/usr/testbed/sbin/addpubkey` is usually insufficient.  See the instructions in [FeddDownload installing] for information on how to construct and install the `taddpubkey` version, and set this option to point at it.  Note that if you are not dynamically allocating resources, you need not create the new script nor set this option.
     115 '''cert_file'''::
     116  Certificate used to assert identity of the allocation component.  If '''uri''' is set in the [access] section, this certificate is presented to the remote allocation `fedd`, if not this certificate is presented to the allocator making a request.
     117 '''cert_pwd'''::
     118  Password for the private key in '''cert_file'''.
     119 '''confirmkey'''::
     120  Path to the Emulab command used to confirm a user's public SSH key.  Only useful for local allocation.  The default of `/usr/testbed/sbin/addpubkey` is usually insufficient.  If you are interested in dynamic allocation, the same modifications that make `taddpubkey` sufficient as for use in adding and removing public SSH keys are sufficent for this use as well.  Follow the instructions in [FeddDownload installing] for information on how to construct and install the `taddpubkey` version, and set this option to point at it.  If you are not allocating resources dynamically, you can use the `confirm_sshkey.py` script packaged with `fedd` for this purpose.  By default it is installed as `/usr/local/bin/confirm_sshkey.py'.
     121 '''grantnodetype'''::
     122  Path to the `grantnodetype` Emulab command.  Only useful for local allocation.  The default of `/usr/testbed/sbin/grantnodetype` is usually insufficient.  See the instructions in [FeddDownload installing] for information on how to construct and install the `tgrantnodetype` version, and set this option to point at it.  Note that if you are not dynamically allocating resources, you need not create the new script nor set this option.
     123 '''mkproj'''::
     124  Path to the `mkproj` Emulab command.  Only useful for local allocation.  The default of `/usr/testbed/sbin/mkproj` is usually correct.
     125 '''newproj'''::
     126  Path to the `newproj` Emulab command.  Only useful for local allocation.  The default of `/usr/testbed/sbin/newproj` is usually correct.
     127 '''newuser'''::
     128  Path to the `newuser` Emulab command.  Only useful for local allocation.  The default of `/usr/testbed/sbin/newuser` is usually correct.
     129 '''rmproj'''::
     130  Path to the `rmproj` Emulab command.  Only useful for local allocation.  The default of `/usr/testbed/sbin/rmproj` is usually correct.
     131 '''rmuser'''::
     132  Path to the `rmuser` Emulab command.  Only useful for local allocation.  The default of `/usr/testbed/sbin/rmuser` is usually correct.
     133 '''trusted_certs'''::
     134  a file containing the trusted CAs used for SSL validation.  If this is not
     135  present, no certificate path checking is done.
     136 '''user_to_project'''::
     137  Script to attach a new local (Emulab) user to a local (Emulab) project.  The `user_to_project.py` script shipped with `fedd` is used for this purpose by default.  Specifically, the default value of this option is `/usr/local/bin/user_to_project.py`.