Annotation of 43BSDReno/contrib/isode-beta/doc/whitepages/administrator/maintenance.tex, revision 1.1.1.1

1.1       root        1: % run this through LaTeX with the appropriate wrapper
                      2: 
                      3: \chapter      {Maintenance}
                      4: Now that your Level-1 DSA has successfully joined the pilot project DMD,
                      5: you must maintain your portion of the Directory tree.
                      6: 
                      7: \section      {A file you should know about}
                      8: The file \file{quiputailor} file in the \file{quipu/wildlife/} directory
                      9: contains runtime configuration for your Level-1 DSA.
                     10: It was automatically created earlier.
                     11: 
                     12: Section~13.3 of \volfive/ discusses the options available for run-time
                     13: tailoring.
                     14: Typically,
                     15: you will not need to edit this file.
                     16: 
                     17: \section      {Nightly Maintenance}
                     18: One of the last tasks performed when you Level-1 DSA joined the pilot project
                     19: DMD was to direct your system to run a shell script, \file{nightly.sh}.
                     20: This script performs two tasks:
                     21: \begin{itemize}
                     22: \item  it mails your logs to the pilot project sponsors
                     23:        (this is only a temporary measure to aid our understanding of
                     24:        how the software is behaving);
                     25:        and,
                     26: 
                     27: \item  it cycles your logs.
                     28: \end{itemize}
                     29: You might wish to modify this script so that you are also informed of the
                     30: activities of your Level-1 DSA.
                     31: Actually, the logs record only crude information.
                     32: During the course of the pilot project,
                     33: the pilot software might be upgraded to provide more meaningful information.
                     34: This will be examined as experience is gained.
                     35: 
                     36: \subsection    {Logs}
                     37: The pilot software does a lot of logging.
                     38: There are two logs which are generated,
                     39: the first,
                     40: \file{dsap.log},
                     41: contains information on general DSA activity,
                     42: whilst the second,
                     43: \file{stats.log},
                     44: contains statistical information on the DSA.
                     45: 
                     46: \subsection    {Limiting the size of Logs}
                     47: If your Level-1 DSA is particularly busy,
                     48: it may generate large logs.
                     49: As such,
                     50: you might find it desirable to limit the maximum size that a log may grow to.
                     51: Since two logs are generated,
                     52: one for DSA activity and the other for statistics,
                     53: you will need to make two edits.
                     54: 
                     55: Look at the \file{quiputailor} file in the \file{quipu/wildlife/} directory.
                     56: There should be four lines similar to this:
                     57: \begin{quote}\small\begin{verbatim}
                     58: # minimal logging
                     59: dsaplog        level=exceptions dflags=tty file=dsap.log
                     60: 
                     61: # full statistics
                     62: stats  level=all dflags=tty file=stats.log
                     63: \end{verbatim}\end{quote}
                     64: Add the string \verb"size=100" at the end of the two lines,
                     65: e.g.,
                     66: \begin{quote}\small\begin{verbatim}
                     67: # minimal logging
                     68: dsaplog        level=exceptions dflags=tty file=dsap.log size=100
                     69: 
                     70: # full statistics
                     71: stats  level=all dflags=tty file=stats.log size=100
                     72: \end{verbatim}\end{quote}
                     73: This will limit the size of each log to 100~Kbytes.
                     74: If you wish other limits,
                     75: change the value \verb"100" accordingly.
                     76: 
                     77: \subsection    {Reading Logs}
                     78: This is currently a black art.
                     79: When the sponsors of the pilot project have mastered this,
                     80: \theguide/ will be updated accordingly.
                     81: In the meantime,
                     82: if you figure something out,
                     83: share it with the \verb"wpp-camayocs" list.
                     84: Have fun.
                     85: 
                     86: \section      {Adding Entries}
                     87: Now comes the fun part:
                     88: entering data into the Directory.
                     89: In general,
                     90: there are two kinds of activities:
                     91: small, incremental changes are best made using \man dish(1c).
                     92: However,
                     93: for the wholesale entry of massive amounts of data,
                     94: the easiest way is to run your favorite text editor and create EDB files
                     95: manually. 
                     96: (In a future release of the pilot project software,
                     97: more management tools will be available to automate this process somewhat.)
                     98: 
                     99: Note that if you edit the EDB files directly,
                    100: you {\bf must\/} tell your DSA to re-read these files after you are done
                    101: editing.
                    102: This is accomplished by either killing and restarting the DSA
                    103: or using the \switch"refresh" option to the \pgm{dish} command
                    104: \verb"dsacontrol".
                    105: 
                    106: To aid the process,
                    107: a number of templates for the objects you might add are found in the directory
                    108: \file{quipu/templates/}:
                    109: \begin{quote}\begin{tabular}{rl}
                    110: \file{alias}&  \verb"alias" object\\
                    111: \file{dsa}&    Level-2 DSA\\
                    112: \file{person}& \verb"pilotPerson" object\\
                    113: \file{role}&   \verb"organizationalRole" object\\
                    114: \file{unit}&   \verb"organizationalUnit" object
                    115: \end{tabular}\end{quote}
                    116: Each of these files contains editing instructions.
                    117: 
                    118: In the \file{quipu/} source directory,
                    119: there is a program called \pgm{testedb},
                    120: which can be used to check EDB files for correctness:
                    121: \begin{quote}\small\begin{verbatim}
                    122: % cd quipu/
                    123: % ./make testedb
                    124: % ./testedb < EDB
                    125: \end{verbatim}\end{quote}
                    126: The \pgm{testedb} program will find the vast majority of errors in an EDB file.
                    127: It can not however,
                    128: find errors due to schema violation
                    129: (i.e., not conforming to the \verb"treeStructure" attribute of the EDB's
                    130: parent).
                    131: If your DSA fails to boot properly,
                    132: the log will indicate:
                    133: \begin{quote}\small\begin{verbatim}
                    134: DSA Halted
                    135: \end{verbatim}\end{quote}
                    136: In this case,
                    137: invoke the DSA interactively to determine the cause of the problem,
                    138: e.g.,
                    139: \begin{quote}\small\begin{verbatim}
                    140: % $(SBINDIR)ros.quipu -t ./quiputailor
                    141: Schema error in entry ending line 16...
                    142: *** Attribute error ***
                    143: <<DN of entry in error>>
                    144: Attribute type objectClass - Constrain violation
                    145: File ...wildlife/c=US/o=O_i/EDB not loaded
                    146: FATAL ERROR: DSA Halted
                    147: \end{verbatim}\end{quote}
                    148: 
                    149: \subsection    {Using Dish}
                    150: If you use the first approach,
                    151: then your Level-1 DSA will automatically update the database directory.
                    152: Thus,
                    153: all you need be able to do is run one of the user interfaces.
                    154: 
                    155: First, identify yourself to \pgm{dish} as the manager of the DSA holding the
                    156: entries you want to modify:
                    157: \begin{quote}\small\begin{verbatim}
                    158: % dish -c "wildlife name" -user "c=US@o=O_i@cn=Manager"
                    159: Enter password for "c=US@o=O_i@cn=Manager": secret
                    160: Dish ->
                    161: \end{verbatim}\end{quote}
                    162: You can now use the \verb"add" and \verb"modify" commands as appropriate.
                    163: For the \verb"add" command,
                    164: it is suggested you start with one of the supplied templates, e.g.,
                    165: \begin{quote}\small\begin{verbatim}
                    166: Dish -> add ou=Corporate -template $(ETCDIR)quipu/templates/unit
                    167: \end{verbatim}\end{quote}
                    168: will create a new organizational unit under the current node.
                    169: 
                    170: The only tricky part is when objects of class \verb"organizationalUnit" or
                    171: \verb"dsa" are added.
                    172: 
                    173: \section      {Adding organizationalUnits}
                    174: When an organizational unit is added,
                    175: you must also modify the entries for the DSAs holding MASTER or SLAVE copies
                    176: of the subordinates of the organizational unit.
                    177: \[\fbox{\begin{tabular}{lp{0.8\textwidth}}
                    178: \bf NOTE:&     At the present time, the pilot sponsors strongly recommend
                    179:                against adding Level-2 DSAs.
                    180: 
                    181:                A Level-2 DSA should be added only when a Level-1 DSA is too
                    182:                large to run on an available system.  In this case,
                    183:                a Level-2 DSA can be used to reduce the memory requirements
                    184:                on the system running the Level-1 DSA.
                    185: \end{tabular}}\]
                    186: 
                    187: If the organizational unit is to be mastered by your Level-1 DSA,
                    188: then the procedure is straight-forward:
                    189: First,
                    190: create a directory in your \file{wildlife/c=US/o=O\_i/} directory with
                    191: the name of the organizational unit, e.g.,
                    192: \begin{quote}\smaller\begin{verbatim}
                    193: wildlife/c=US/o=NYSERNet Inc./ou=Corporate
                    194: \end{verbatim}\end{quote}
                    195: Second,
                    196: create an \file{EDB} file in this \unix/ directory containing information on
                    197: the entries in that organizational unit.
                    198: Third,
                    199: create an entry for that organizational unit in the Directory,
                    200: e.g., by running \pgm{dish}, moving to your organization's entry,
                    201: typing:
                    202: \begin{quote}\small\begin{verbatim}
                    203: Dish -> add ou=Corporate -template $(ETCDIR)quipu/templates/unit
                    204: \end{verbatim}\end{quote}
                    205: and then following the editing instructions in the file.
                    206: 
                    207: \section      {Adding a Level-2 DSA}
                    208: There are three aspects to adding a Level-2 DSA:
                    209: first, the entry for your organization and Level-1 DSA must be modified,
                    210: and an entry for your Level-2 DSA must be created;
                    211: second,
                    212: the Level-2 DSA must be configured;
                    213: and,
                    214: third,
                    215: parts of the Directory tree mastered by the Level-1 DSA may be moved over to
                    216: be mastered by the Level-2 DSA.
                    217: 
                    218: First, you must choose a name for your new Level-2 DSA.
                    219: Since there will probably be more Level-2 DSAs then endangered species of
                    220: South American Wildlife,
                    221: you do not have to use a wildlife name for a Level-2 DSA.
                    222: Choose something associated with your organization or state.
                    223: 
                    224: For the purposes of the pilot project,
                    225: the name of each Level-2 DSA taks the form:
                    226: \begin{quote}\small\begin{verbatim}
                    227: c=US@o=O_i@cn=wildlife name
                    228: \end{verbatim}\end{quote}
                    229: As usual,
                    230: you will have to pick a ``sanitized'' name that will be used for the \unix/
                    231: directory which will contain the database for your Level-2 DSA.
                    232: 
                    233: To remain consistent with the discussion on configuring a Level-1 DSA,
                    234: we'll call the name of the DSA \verb"wildlife name" and the directory will be
                    235: called \file{wildlife/}.
                    236: 
                    237: \subsection    {Modifying the Level-1 DSA}
                    238: To the entry for your Level-1 DSA,
                    239: you will need to add these lines:
                    240: \begin{quote}\small\begin{verbatim}
                    241: eDBinfo= # # c=US@o=O_i@cn=wildlife name
                    242: eDBinfo= c=US # # c=US@o=O_i@cn=wildlife name
                    243: eDBinfo= c=US@o=O_i # # c=US@o=O_i@cn=wildlife name
                    244: \end{verbatim}\end{quote}
                    245: This says that your Level-1 DSA provide copies of the ROOT, \verb"c=US" and
                    246: your organization's EDBs to your Level-2 DSA.
                    247: 
                    248: This addition is done using the \verb"modify" command to \pgm{dish}:
                    249: \begin{quote}\small\begin{verbatim}
                    250: Dish -> modify "@c=US@cn=wildlife name"
                    251: \end{verbatim}\end{quote}
                    252: 
                    253: Note that even though your Level-2 DSA will contain a slave copy of the EDB
                    254: for your organization,
                    255: you do not add a \verb"slaveDSA" attribute to your organization's entry to
                    256: reflect this.
                    257: In order to contact your Level-2 DSA,
                    258: it is necessary to find its \verb"presentationAddress" attribute by asking the
                    259: directory.
                    260: Since the entry for your Level-2 DSA is kept beneath your organization's
                    261: entry, anyone asking for information about your Level-2 DSA would already have
                    262: information on your organization!
                    263: 
                    264: Finally,
                    265: you need to add an entry for your Level-2 DSA to the EDB for your organization:
                    266: \begin{quote}\small\begin{verbatim}
                    267: Dish -> add "cn=wildlife name" -template $(ETCDIR)quipu/templates/dsa
                    268: \end{verbatim}\end{quote}
                    269: The template file contains these editing instructions:
                    270: \begin{enumerate}
                    271: \item  Change each occurrence of \verb"O_i" to your organization's name; e.g.,
                    272: \begin{quote}\small\begin{verbatim}
                    273: NYSERNet Inc.
                    274: \end{verbatim}\end{quote}
                    275: 
                    276: \item  Change each occurrence of \verb"wildlife name" to the common name of
                    277:        your DSA; e.g.,
                    278: \begin{quote}\small\begin{verbatim}
                    279: beeblebrox
                    280: \end{verbatim}\end{quote}
                    281: 
                    282: \item  For each organizational unit, \verb"U_j", this DSA will master,
                    283: add a line:
                    284: \begin{quote}\small\begin{verbatim}
                    285: eDBinfo = c=US@o=O_i@ou=U_j # # c=US@cn=level-1 DSA
                    286: \end{verbatim}\end{quote}
                    287: where \verb"c=US@cn=level-1 DSA" is the name of your Level-1 DSA.
                    288: 
                    289: \item  Change the value of the \verb"presentationAddress" attribute to
                    290:        contain the IP address of the host running the Level-2 DSA,
                    291:        and select an unused TCP port at this IP address
                    292:        (port~17010 is suggested for Level-2 DSAs);
                    293:        e.g.,
                    294: \begin{quote}\small\begin{verbatim}
                    295: '0101'H/Internet=130.117.118.3+17010
                    296: \end{verbatim}\end{quote}
                    297: If other Level-2 DSAs are to be run on this host,
                    298: it is suggested that ascending port numbers, starting at 17011, be assigned.
                    299: However,
                    300: running multiple Level-2 DSAs on a single host is not recommended.
                    301: 
                    302: \item  Change the value of the \verb"description" attribute for your
                    303:        Level-2 DSA accordingly.
                    304:        The first value should be the wildlife description.
                    305:        Note that you should fully explain the meaning of the Level-2 DSA's
                    306:        common name.
                    307:        Another description value should be added for each organizational
                    308:        unit mastered by this DSA, e.g.,
                    309: \begin{quote}\small\begin{verbatim}
                    310: Master DSA for U_j under O_i
                    311: \end{verbatim}\end{quote}
                    312: \end{enumerate}
                    313: 
                    314: \subsection    {Configuring a Level-2 DSA}
                    315: Configuring a Level-2 DSA is currently a pain as \pgm{dsaconfig} is not
                    316: currently used for this task.
                    317: Before following the steps below,
                    318: drop a note to the \verb"wpp-camayocs" list and ask if a new version of
                    319: \pgm{dsaconfig} is available!
                    320: 
                    321: Start by copying the database directory for your Level-2 DSA:
                    322: \begin{quote}\small\begin{verbatim}
                    323: # cd quipu/
                    324: # cp -r level-1-dsa wildlife
                    325: # chmod 700 wildlife
                    326: # find wildlife -exec chown daemon {} \;
                    327: # find wildlife -exec chgrp daemon {} \;
                    328: # su daemon
                    329: # cd wildlife/
                    330: \end{verbatim}\end{quote}
                    331: 
                    332: \subsubsection {Editing the DSA tailoring file}
                    333: Now edit the \file{quiputailor} file in the \file{quipu/wildlife/} directory.
                    334: There are three things to do:
                    335: \begin{enumerate}
                    336: \item  Change the \verb"mydsaname" variable to reflect the Distinguished Name
                    337:        of the DSA.
                    338:        For example:
                    339: \begin{quote}\small\begin{verbatim}
                    340: mydsaname       "c=US@o=O_icn=wildlife name"
                    341: \end{verbatim}\end{quote}
                    342:        becomes
                    343: \begin{quote}\small\begin{verbatim}
                    344: mydsaname       "c=US@o=NYSERNet Inc.@cn=beeblebrox"
                    345: \end{verbatim}\end{quote}
                    346: 
                    347: \item  Change the \verb"logdir" variable to reflect the \unix/ directory where
                    348: QUIPU log files are to reside.
                    349:        For example:
                    350: \begin{quote}\small\begin{verbatim}
                    351: logdir  $(ETCDIR)quipu/wildlife/
                    352: \end{verbatim}\end{quote}
                    353:        becomes
                    354: \begin{quote}\small\begin{verbatim}
                    355: logdir  $(ETCDIR)quipu/beeblebrox/
                    356: \end{verbatim}\end{quote}
                    357: (Note the trailing slash.)
                    358: 
                    359: \item  Change the \verb"treedir" variable to reflect the \unix/ directory
                    360: where the DSA's database resides.
                    361:        For example:
                    362: \begin{quote}\small\begin{verbatim}
                    363: logdir  $(ETCDIR)quipu/wildlife
                    364: \end{verbatim}\end{quote}
                    365:        becomes
                    366: \begin{quote}\small\begin{verbatim}
                    367: logdir  $(ETCDIR)quipu/beeblebrox
                    368: \end{verbatim}\end{quote}
                    369: (Note the lack of a trailing slash.)
                    370: \end{enumerate}
                    371: 
                    372: Section~13.3 of \volfive/ discusses the options available for run-time
                    373: tailoring.
                    374: You will have no need of editing this file.
                    375: 
                    376: \subsubsection {Editing the DSA startup file}
                    377: Now edit the \file{startup.sh} file in the \file{quipu/wildlife/} directory.
                    378: There are two things to do:
                    379: \begin{enumerate}
                    380: \item  Change the \verb"W" variable to reflect the wildlife name of the DSA.
                    381:        For example:
                    382: \begin{quote}\small\begin{verbatim}
                    383: W=wildlife
                    384: \end{verbatim}\end{quote}
                    385:        becomes
                    386: \begin{quote}\small\begin{verbatim}
                    387: W="Beeblebrox"
                    388: \end{verbatim}\end{quote}
                    389: 
                    390: \item  Change the \verb"D" variable to reflect the \unix/ directory where
                    391: the DSA's database resides.
                    392:        For example:
                    393: \begin{quote}\small\begin{verbatim}
                    394: D=$(ETCDIR)quipu/wildlife
                    395: \end{verbatim}\end{quote}
                    396:        becomes
                    397: \begin{quote}\small\begin{verbatim}
                    398: D=$(ETCDIR)quipu/beeblebrox
                    399: \end{verbatim}\end{quote}
                    400: \end{enumerate}
                    401: 
                    402: \subsubsection {Building an Initial Database}
                    403: The directory database you created with the \pgm{cp} command earlier has done
                    404: virtually all the work for you.
                    405: Now all you need do is edit each EDB file to initially mark each as a
                    406: SLAVE copy.
                    407: A simple way of doing this is:
                    408: \begin{quote}\small\begin{verbatim}
                    409: # find . -name EDB -a -exec vi {} \;
                    410: \end{verbatim}\end{quote}
                    411: which will run \pgm{vi} on each EDB file.
                    412: If the first line of this file says \verb"MASTER",
                    413: change it to \verb"SLAVE".
                    414: Otherwise the first line should say \verb"SLAVE"
                    415: (if the first line of the EDB file says \verb"CACHE",
                    416: then contact a \camayoc/ for assistance.)
                    417: 
                    418: \subsubsection {Testing the Level-2 DSA}
                    419: At this point,
                    420: your Level-2 DSA should be configured and you should start and test it:
                    421: \begin{quote}\small\begin{verbatim}
                    422: # $(SBINDIR)ros.quipu -t ./quiputailor &
                    423: \end{verbatim}\end{quote}
                    424: If your DSA is configured properly,
                    425: it will print out something like:
                    426: \begin{quote}\small\begin{verbatim}
                    427: -- '0101'H/Internet=130.117.128.3+17010 --
                    428: DSA Started
                    429: \end{verbatim}\end{quote}
                    430: If your Level-2 DSA does not boot for some reason,
                    431: consult Section~\ref{dsa:failure} on page~\pageref{dsa:failure}.
                    432: 
                    433: You should now try connecting to the Level-2 DSA.
                    434: \begin{quote}\small\begin{verbatim}
                    435: % dish -c "wildlife name"
                    436: Welcome to Dish (DIrectory SHell)
                    437: Dish ->
                    438: \end{verbatim}\end{quote}
                    439: indicates that the DUA connected to your Level-1 DSA.
                    440: Otherwise consult Section~\ref{dua:failure} on
                    441: page~\pageref{dua:failure} and try to debug the problem.
                    442: 
                    443: \subsubsection {Editing the DUA tailoring file}
                    444: Once your Level-2 DSA is operational,
                    445: you should edit the file \file{dsaptailor} in the ISODE \verb"ETCDIR"
                    446: directory so that your DUAs 
                    447: will know about this DSA.
                    448: This is done by adding this line
                    449: \begin{quote}\smaller\begin{verbatim}
                    450: dsa_address "wildlife name"      '0101'H/Internet=aaa.bbb.ccc.ddd+port
                    451: \end{verbatim}\end{quote}
                    452: {\em after\/} the \verb"dsa_address" line for your Level-1 DSA
                    453: and then making these edits:
                    454: \begin{enumerate}
                    455: \item  Substitute the common name of your DSA for \verb"wildlife name"; e.g.,
                    456: \begin{quote}\small\begin{verbatim}
                    457: Beeblebrox
                    458: \end{verbatim}\end{quote}
                    459: 
                    460: \item  Change the IP address and TCP port number to correspond to the
                    461:        OSI presentation address you defined earlier in the entry for the
                    462:        DSA;
                    463:        e.g.,
                    464: \begin{quote}\small\begin{verbatim}
                    465: '0101'H/Internet=130.117.118.3+17010
                    466: \end{verbatim}\end{quote}
                    467: \end{enumerate}
                    468: 
                    469: Now run the \man dish(1c) program again,
                    470: telling it to connect to your Level-1 DSA.
                    471: \begin{quote}\small\begin{verbatim}
                    472: % dish -c "wildlife name"
                    473: Welcome to Dish (DIrectory SHell)
                    474: Dish ->
                    475: \end{verbatim}\end{quote}
                    476: indicates that the DUA connected to your Level-1 DSA.
                    477: Otherwise consult Section~\ref{dua:failure} on
                    478: page~\pageref{dua:failure} and try to debug the problem.
                    479: 
                    480: Now look around the Directory tree using \pgm{dish}.
                    481: Descend to \verb"c=US@o=O_i" to check on your own entries.
                    482: A good test to run is to try and bind to your own entry,
                    483: but to do so by dereferencing the alias for the Manager of your DMD:
                    484: \begin{quote}\small\begin{verbatim}
                    485: Dish -> bind -user "c=US@o=O_i@cn=Manager"
                    486: Enter password for "c=US@o=O_i@cn=Manager": 
                    487: Dish -> 
                    488: \end{verbatim}\end{quote}
                    489: Indicates that you are now bound to the directory as that DN.
                    490: Instead, if you see:
                    491: \begin{quote}\small\begin{verbatim}
                    492: Dish -> bind -user "c=US@o=O_i@cn=Manager"
                    493: Enter password for "c=US@o=O_i@cn=Manager": 
                    494: Security Error - check name and password
                    495: \end{verbatim}\end{quote}
                    496: then either you may have entered the DN or password wrong.
                    497: Try again.
                    498: If not,
                    499: or if you encounter some other problem,
                    500: contact a \camayoc/ for assistance.
                    501: 
                    502: \subsection    {Moving portions of the Directory Tree}
                    503: For each organizational unit, \verb"ou=U_j", the Level-2 DSA will master,
                    504: you now need to do two things:
                    505: \begin{itemize}
                    506: \item  tell your Level-1 DSA that it no longer masters the EDB;
                    507:        and,
                    508: 
                    509: \item  tell your Level-2 DSA that it now masters the EDB.
                    510: \end{itemize}
                    511: The first step is done as follows.
                    512: Begin by using \pgm{dish} to bind to the Level-1 DSA:
                    513: \begin{quote}\small\begin{verbatim}
                    514: % dish -c "Level-1 DSA" -user "c=US@o=O_i@cn=Manager"
                    515: \end{verbatim}\end{quote}
                    516: Next:
                    517: \begin{enumerate}
                    518: \item  Modify the entry for the organizational unit which is held by your
                    519: Level-1 DSA.
                    520: Change the \verb"masterDSA" attribute of the entry corresponding to that
                    521: unit from:
                    522: \begin{quote}\small\begin{verbatim}
                    523: masterDSA= c=US@cn=Level-1 DSA
                    524: \end{verbatim}\end{quote}
                    525: to:
                    526: \begin{quote}\small\begin{verbatim}
                    527: masterDSA= c=US@o=O_i@cn=wildlife name
                    528: \end{verbatim}\end{quote}
                    529: You will also need to add a \verb"slaveDSA" attribute to this entry:
                    530: \begin{quote}\small\begin{verbatim}
                    531: slaveDSA= c=US@cn=Level-1 DSA
                    532: \end{verbatim}\end{quote}
                    533: 
                    534: These additions are done using \pgm{dish}:
                    535: \begin{quote}\small\begin{verbatim}
                    536: Dish -> modify "@c=US@o=O_i@ou=U_j"
                    537: \end{verbatim}\end{quote}
                    538: 
                    539: \item  Modify the entry for your Level-1 DSA.
                    540: Change the line that says:
                    541: \begin{quote}\small\begin{verbatim}
                    542: eDBinfo= c=US@o=O_i@ou=U_j # #
                    543: \end{verbatim}\end{quote}
                    544: to:
                    545: \begin{quote}\small\begin{verbatim}
                    546: eDBinfo= c=US@o=O_i@ou=U_j # c=US@o=O_i@cn=wildlife name #
                    547: \end{verbatim}\end{quote}
                    548: This says that your Level-1 DSA will receive copies of the EDB for each
                    549: organizational unit held by your Level-2 DSA.
                    550: 
                    551: This change is done using the \verb"modify" command to \pgm{dish}:
                    552: \begin{quote}\small\begin{verbatim}
                    553: Dish -> modify "@c=US@cn=wildlife name"
                    554: \end{verbatim}\end{quote}
                    555: 
                    556: \item  Lock the Level-1 DSA's copy of the EDB file:
                    557: \begin{quote}\small\begin{verbatim}
                    558: Dish -> dsacontrol -lock "c=US@o=O_i@ou=U_j"
                    559: \end{verbatim}\end{quote}
                    560: 
                    561: \item  Edit the EDB file kept in the {\bf Level-1\/} DSA's directory
                    562: database by changing the first line from \verb"MASTER" to \verb"SLAVE".
                    563: (If the first line of this file does not say \verb"MASTER",
                    564: then you are editing the {\bf wrong\/} directory database.)
                    565: 
                    566: \item  Unlock the Level-1 DSA's copy of the EDB file:
                    567: \begin{quote}\small\begin{verbatim}
                    568: Dish -> dsacontrol -refresh "c=US@o=O_i@ou=U_j"
                    569: Dish -> dsacontrol -unlock "c=US@o=O_i@ou=U_j"
                    570: \end{verbatim}\end{quote}
                    571: \end{enumerate}
                    572: 
                    573: The second step is done as follows.
                    574: Begin by using \pgm{dish} to bind to the Level-2 DSA:
                    575: \begin{quote}\small\begin{verbatim}
                    576: % dish -c "Level-2 DSA" -user "c=US@o=O_i@cn=Manager"
                    577: \end{verbatim}\end{quote}
                    578: Next:
                    579: \begin{enumerate}
                    580: \item  Modify the entry for the for organizational unit which is to be
                    581: mastered by your Level-2 DSA.
                    582: Change the \verb"masterDSA" attribute of the entry corresponding to that
                    583: unit from:
                    584: \begin{quote}\small\begin{verbatim}
                    585: masterDSA= c=US@cn=Level-1 DSA
                    586: \end{verbatim}\end{quote}
                    587: to:
                    588: \begin{quote}\small\begin{verbatim}
                    589: masterDSA= c=US@o=O_i@cn=wildlife name
                    590: \end{verbatim}\end{quote}
                    591: You will also need to add a \verb"slaveDSA" attribute to this entry:
                    592: \begin{quote}\small\begin{verbatim}
                    593: slaveDSA= c=US@cn=Level-1 DSA
                    594: \end{verbatim}\end{quote}
                    595: 
                    596: These additions are done using \pgm{dish}:
                    597: \begin{quote}\small\begin{verbatim}
                    598: Dish -> modify "@c=US@o=O_i@ou=U_j"
                    599: \end{verbatim}\end{quote}
                    600: 
                    601: \item  Modify the entry for your Level-2 DSA.
                    602: Add this line:
                    603: \begin{quote}\small\begin{verbatim}
                    604: eDBinfo= c=US@o=O_i@ou=U_j # # c=US@cn=Level-1 DSA
                    605: \end{verbatim}\end{quote}
                    606: This says that your Level-1 DSA will receive copies of the EDB for each
                    607: organizational unit held by your Level-2 DSA.
                    608: 
                    609: This change is done using the \verb"modify" command to \pgm{dish}:
                    610: \begin{quote}\small\begin{verbatim}
                    611: Dish -> modify "@c=US@o=O_i@cn=wildlife name"
                    612: \end{verbatim}\end{quote}
                    613: 
                    614: \item  Lock the Level-2 DSA's copy of the EDB file:
                    615: \begin{quote}\small\begin{verbatim}
                    616: Dish -> dsacontrol -lock "@c=US@o=O_i@ou=U_j"
                    617: \end{verbatim}\end{quote}
                    618: 
                    619: \item  Edit the EDB file kept in the {\bf Level-2\/} DSA's directory
                    620: database by changing the first line from \verb"SLAVE" to \verb"MASTER".
                    621: (If the first line of this file does not say \verb"SLAVE",
                    622: then you are editing the {\bf wrong\/} directory database.)
                    623: 
                    624: \item  Unlock the Level-2 DSA's copy of the EDB file:
                    625: \begin{quote}\small\begin{verbatim}
                    626: Dish -> dsacontrol -unlock "@c=US@o=O_i@ou=U_j"
                    627: \end{verbatim}\end{quote}
                    628: \end{enumerate}
                    629: You should now reboot your Level-2 DSA and then try to connect to it using
                    630: \pgm{dish}.
                    631: Once this is successfully,
                    632: you should reboot your Level-1 DSA and also use \pgm{dish} to connect to it.
                    633: 
                    634: When you restart the Level-2 DSA,
                    635: it will try to update its ROOT,
                    636: \verb"c=US",
                    637: and \verb"o=O_i" EDB files from your Level-1 DSA.
                    638: The first two should be the same as what your Level-2 is running,
                    639: so no update will take place.
                    640: The third will be different however,
                    641: so you should see a file \file{c=US/o=O\_i/EDB.bak} created.
                    642: 
                    643: When you restart the Level-1 DSA,
                    644: in addition to trying to reload its ROOT and \verb"c=US" EDB files from the
                    645: Level-0 DSAs,
                    646: it will try to reload the EDB file for each organizational unit mastered by
                    647: the Level-2 DSA.
                    648: Since these will be the same,
                    649: initially no update will take place.
                    650: 
                    651: \subsubsection {Editing the DUA tailoring file}
                    652: You now edit the \file{dsaptailor} file one more time.
                    653: Move the \verb"dsa_address" line for your Level-2 DSA above the line for your
                    654: Level-1 DSA.
                    655: This will tell your DUAs to contact the Level-2 DSA by default,
                    656: rather than the Level-1 DSA.
                    657: 
                    658: \subsubsection {System Administration}
                    659: Once everything checks out,
                    660: its time to restart the DSA in the background.
                    661: Use \pgm{dish} to abort the DSA and then run the \file{startup.sh} script:
                    662: \begin{quote}\small\begin{verbatim}
                    663: % $(ETCDIR)quipu/wildlife/startup.sh
                    664: \end{verbatim}\end{quote}
                    665: Take a look at the log files it creates and once you're satisfied
                    666: that it is operational,
                    667: use \pgm{dish} one last time before considering things up and running.
                    668: 
                    669: Finally,
                    670: it's time for the last bit of system administration:
                    671: \begin{enumerate}
                    672: \item  Add an entry to the file \file{/etc/rc.local}:
                    673: \begin{quote}\smaller\begin{verbatim}
                    674: if [ -d $(ETCDIR)quipu/wildlife ]; then
                    675:    $(ETCDIR)quipu/wildlife/startup.sh & \
                    676:                                 (echo -n ' wildlife') > /dev/console
                    677: fi
                    678: \end{verbatim}\end{quote}
                    679: in the section where the network servers are started.
                    680: If your \file{rc.local} file starts \man tsapd(8c),
                    681: then place this entry after the one which starts \pgm{tsapd}.
                    682: 
                    683: \item  Edit the file \file{quipu/wildlife/nightly.sh},
                    684: by looking for these three lines
                    685: \begin{quote}\smaller\begin{verbatim}
                    686: W="dsa name from dsaptailor, e.g., Beeblebrox"
                    687: D="wildlife directory, e.g., $(ETCDIR)quipu/beeblebrox"
                    688: \end{verbatim}\end{quote}
                    689: and editing them appropriately.
                    690: 
                    691: \item  Based on the time that the \verb"c=US" manager gave you for your
                    692: Level-1 DSA, add one hour and modify the \file{crontab} file according; e.g.,
                    693: \begin{quote}\small\begin{verbatim}
                    694: 0 5 * * * $(ETCDIR)quipu/wildlife/nightly.sh
                    695: \end{verbatim}\end{quote}
                    696: If the directory database for the Level-2 DSA is owned by a user-ID other
                    697: than \verb"root" (e.g., \verb"daemon"),
                    698: then instead the line should look something like this:
                    699: \begin{quote}\small\begin{verbatim}
                    700: 0 5 * * * su daemon < $(ETCDIR)quipu/wildlife/nightly.sh
                    701: \end{verbatim}\end{quote}
                    702: \end{enumerate}
                    703: 
                    704: Congratulations!
                    705: Your Level-2 DSA has now joined the pilot DMD.
                    706: 
                    707: \section      {Miscellaneous Topics}
                    708: Here is information on a wide range of topics,
                    709: arranged in  no particular order.
                    710: 
                    711: \subsection    {Moving a Level-1 DSA}
                    712: For various reasons you might need to move your DSA from one host to another.
                    713: In OSI terminology,
                    714: you need to change the presentation address of the DSA.
                    715: The steps to do this are:
                    716: \begin{enumerate}
                    717: \item  Modify the \verb"presentationAddress" attribute of your DSA using
                    718: \pgm{dish} to include the second host.
                    719: Also edit your \file/{dsaptailor} file to include this new address.
                    720: In both cases, you simply add the string:
                    721: \begin{quote}\small\begin{verbatim}
                    722: |Internet=aaa.bbb.ccc.ddd+portno
                    723: \end{verbatim}\end{quote}
                    724: to the address.
                    725: So, if the old address was
                    726: \begin{quote}\small\begin{verbatim}
                    727: '0101'H/Internet=192.33.4.20+17003
                    728: \end{verbatim}\end{quote}
                    729: the new address might be
                    730: \begin{quote}\small\begin{verbatim}
                    731: '0101'H/Internet=192.33.4.20+17003|Internet=130.117.128.2+17003
                    732: \end{verbatim}\end{quote}
                    733: 
                    734: \item  Edit your DSA's entry in the \file{c=US/EDB} file and remove the line
                    735: \begin{quote}\small\begin{verbatim}
                    736: eDBinfo= c=US # cn=Alpaca #
                    737: \end{verbatim}\end{quote}
                    738: This will prevent your DSA from seeing this change to it's presentation
                    739: address,
                    740: which is necessary since your DSA can't listen on the new address at the
                    741: moment.
                    742: 
                    743: \item  Now wait a couple of days for this new information to propagate.
                    744: This is important to avoid a transient service outage.
                    745: 
                    746: \item  Stop the DSA and move its hierarchy over to the new host.
                    747: 
                    748: \item  Edit the \file{c=US/EDB} file and change your
                    749: DSA's \verb"presentationAddress" attribute to have only the new address, e.g.,
                    750: \begin{quote}\small\begin{verbatim}
                    751: presentationAddress= '0101'H/Internet=130.117.128.2+17003
                    752: \end{verbatim}\end{quote}
                    753: 
                    754: \item  Start the DSA on the new host and verify that it is working okay.
                    755: 
                    756: \item  Modify the \verb"presentationAddress" attribute to remove the first
                    757: host address for your DSA using \pgm{dish} 
                    758: The presentation address will now match the value in the \file{c=US/EDB} file
                    759: you have locally.
                    760: Also edit your \file{dsaptailor} file to have only the new address.
                    761: 
                    762: \item  Edit your DSA's entry in the \file{c=US/EDB} file and add the line
                    763: \begin{quote}\small\begin{verbatim}
                    764: eDBinfo= c=US # cn=Alpaca #
                    765: \end{verbatim}\end{quote}
                    766: This will resume the automatic downloading of information for your DSA.
                    767: 
                    768: \item  Don't forget to edit \file{/etc/rc.local} and \file{/usr/lib/crontab}
                    769: on both systems.
                    770: \end{enumerate}
                    771: 
                    772: \subsection    {Running a SLAVE Level-1 DSA}
                    773: {\em to be supplied$\ldots$}
                    774: 
                    775: %%% register at c=US
                    776: %%% copy edb files
                    777: %%% change masters to slaves
                    778: %%% for each master add
                    779: %%%     eDBinfo= dn # master #         to slave DSA entry
                    780: %%%     eDBinfo= dn # # slave          to master entry
                    781: %%%     slaveDSA= slave                        to dn entry
                    782: 
                    783: \subsection    {A Final Word on DSAs and Knowledge Information}
                    784: It is important to appreciate that a DSA may hold knowledge
                    785: (have local \file{EDB} files)
                    786: even though the DIT does not indicate this
                    787: (no corresponding \verb"slaveDSA" attribute for that portion of the tree).
                    788: This is a feature.
                    789: 
                    790: For example,
                    791: if you wish to speed access to certain parts of the tree for your users,
                    792: then to the entry of the DSA which MASTERs that information,
                    793: you add this attribute: 
                    794: \begin{quote}\small\begin{verbatim}
                    795: eDBinfo = interesting_EDB # # slave_DSA_name
                    796: \end{verbatim}\end{quote}
                    797: to the entry of the DSA which is to have a copy,
                    798: you add this attribute:
                    799: \begin{quote}\small\begin{verbatim}
                    800: eDBinfo = interesting_EDB # master_DSA_name #
                    801: \end{verbatim}\end{quote}
                    802: And you do {\bf not\/} add any \verb"slaveDSA" attribute to the entry
                    803: corresponding that EDB.
                    804: 
                    805: This configuration has the effect that any user contacting the slave DSA,
                    806: will find that information local,
                    807: but, since this DSA is not listed in the \verb"slaveDSA" attribute,
                    808: then other DSAs won't bother it asking for information.
                    809: 
                    810: \subsection    {Naming People}\label{naming:people}
                    811: As noted earlier,
                    812: entries in the Directory are uniquely named by their
                    813: Relative Distinguished Name (RDN).
                    814: In the pilot software,
                    815: the RDN is represented as the first line of each entry in the \file{EDB} file
                    816: for its immediate parent.
                    817: Thus,
                    818: within an \file{EDB} file,
                    819: all RDNs must be unique.
                    820: 
                    821: The simplest way of doing this is to use:
                    822: \begin{quote}\small\begin{verbatim}
                    823: cn=FirstName LastName
                    824: \end{verbatim}\end{quote}
                    825: as the RDN.
                    826: However,
                    827: in organizations with large numbers of people,
                    828: this may not be sufficient to be unique.
                    829: So, there are four alternative strategies:
                    830: \begin{enumerate}
                    831: \item  Use
                    832: \begin{quote}\small\begin{verbatim}
                    833: cn=FirstName LastName
                    834: \end{verbatim}\end{quote}
                    835:        whenever possible.
                    836:        However,
                    837:        whenever ambiguity occurs, use either
                    838: \begin{quote}\small\begin{verbatim}
                    839: cn=FirstName MiddleInitial LastName
                    840: \end{verbatim}\end{quote}
                    841:        or
                    842: \begin{quote}\small\begin{verbatim}
                    843: cn=FirstName MiddleName LastName
                    844: \end{verbatim}\end{quote}
                    845:        Note that,
                    846:        the shorter forms should also be included to aid in searching.
                    847:        Hence,
                    848:        the first three lines of an entry might look like:
                    849: \begin{quote}\small\begin{verbatim}
                    850: cn=FirstName MiddleName LastName
                    851: cn= FirstName MiddleInitial LastName
                    852: cn= FirstName LastName
                    853: \end{verbatim}\end{quote}
                    854:        The first value is used for the RDN,
                    855:        and the other two for searching.
                    856: 
                    857: \item  Always use
                    858: \begin{quote}\small\begin{verbatim}
                    859: cn=FirstName MiddleName LastName
                    860: \end{verbatim}\end{quote}
                    861:        as the RDN for all entries,
                    862:        and include the shorter forms whenever possible.
                    863: 
                    864: \item  Always generate a uniquely constructed string
                    865: \begin{quote}\small\begin{verbatim}
                    866: cn=FML1
                    867: \end{verbatim}\end{quote}
                    868: and include whatever real naming information is available for searching
                    869: purposes:
                    870: \begin{quote}\small\begin{verbatim}
                    871: cn= FirstName MiddleName LastName
                    872: cn= FirstName MiddleInitial LastName
                    873: cn= FirstName LastName
                    874: \end{verbatim}\end{quote}
                    875: The only caveat with this approach is that each time the EDB file is
                    876: generated, it is best not to change the RDNs for entries which previously
                    877: existed.
                    878: 
                    879: \item  Use a multi-valued RDN ({\em deus ex machina\/} formed by a
                    880: \verb"commonName" attribute and some other distinguishing attribute:
                    881: \begin{quote}\small\begin{verbatim}
                    882: cn=FirstName MiddleName LastName%userid=Lastname
                    883: \end{verbatim}\end{quote}
                    884: The \verb"`%'"-sign is used to concatenate attributes when forming an RDN.
                    885: Hence,
                    886: if the first line of an entry is
                    887: \begin{quote}\small\begin{verbatim}
                    888: cn=Marshall Rose%userid=mrose
                    889: \end{verbatim}\end{quote}
                    890: then the entry's RDN really has two parts:
                    891: the most significant part is a \verb"commonName" attribute,
                    892: and the next significant part is a \verb"userid" attribute.
                    893: Other good choices besides \verb"userid" are things like \verb"localityName".
                    894: 
                    895: Of course,
                    896: the \verb"`%'"-notation can be used only on the first line of an entry,
                    897: as it is used only for RDNs.
                    898: \end{enumerate}
                    899: In all cases,
                    900: regardless of the actual RDN chosen,
                    901: it is strongly recommended to include as many alternate forms as possible,
                    902: in order to aid searching.
                    903: 
                    904: \subsection    {Installing the Software on other hosts}
                    905: You may wish to install the interfaces to the Directory,
                    906: on other systems,
                    907: whilst running a DSA on a single host.
                    908: If the hardware/software configuration of the new hosts are the same as the
                    909: initial host,
                    910: then you can simply install the compiled binaries.
                    911: Usually this is done by mounting the source hierarchy over the network,
                    912: logging in to the new host,
                    913: and using:
                    914: \begin{quote}\small\begin{verbatim}
                    915: # ./make inst-all inst-quipu
                    916: # (cd others/quipu; ./make inst-pilot)
                    917: \end{verbatim}\end{quote}
                    918: Then,
                    919: you must copy over two files from the ISODE \verb"ETCDIR" directory on the
                    920: original host: \file{dsaptailor} and \file{fredrc}.
                    921: 
                    922: If, however, you wish to change the software configuration,
                    923: then after moutning the source hierarchy,
                    924: you must clean the existing binaries in the source hierarchy,
                    925: then select the new configuration files and go through the generation and
                    926: installation process:
                    927: \begin{quote}\small\begin{verbatim}
                    928: % ./make distribution
                    929: % ./make once-only all all-quipu
                    930: % (cd others/quipu; ./make pilot)
                    931: # ./make inst-all inst-quipu
                    932: # (cd others/quipu; ./make inst-pilot)
                    933: \end{verbatim}\end{quote}
                    934: Next, you must then copy over the \file{dsaptailor} and \file{fredrc} files
                    935: from the ISODE \verb"ETCDIR" directory on the original host.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.