Annotation of 43BSDReno/contrib/isode-beta/doc/whitepages/administrator/maintenance.tex, revision 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.