|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.