Code

9b59eb187d6bc26e4252aa4f70dfca85533527ad
[gosa.git] / contrib / openldap / fai.schema
2 #                                                                             #
3 #            F A I - Fully automatic installation LDAP schema file            #
4 #                                                                             #
5 #-----------------------------------------------------------------------------#
6 # Date: 20050902                                                              #
7 #-----------------------------------------------------------------------------#
8 #             Copyright 2005, Cajus Pollmeier <cajus@debian.org>              #
9 #                             Thomas Lange <lange@debian.org>                 #
10 #-----------------------------------------------------------------------------#
11 # This program is free software; you can redistribute it and/or modify        #
12 # it under the terms of the GNU General Public License as published by        #
13 # the Free Software Foundation; either version 2 of the License, or           #
14 # (at your option) any later version.                                         #
15 #                                                                             #
16 # This program is distributed in the hope that it will be useful,             #
17 # but WITHOUT ANY WARRANTY; without even the implied warranty of              #
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
19 # GNU General Public License for more details.                                #
20 #                                                                             #
21 # You should have received a copy of the GNU General Public License           #
22 # along with this program; if not, write to the Free Software                 #
23 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA   #
24 ###############################################################################
27 # This schema file has dependencies to the nis.schema. Please make sure that
28 # the inclusion order in your slapd.conf is correct.
31 # Here's a short list of object class / attribute relationship. For a more
32 # detailed description take a look at the definitions below.
33 #
34 # Objectclasses        | Attributes
35 # -----------------------------------------------------------------------------
36 # FAIclass             | cn,description,FAIclassType
37 # FAIprofile           | FAIclass
38 # FAIhook              | (inherit from FAIclass)
39 # FAIhookEntry         | FAIscript, FAItask
40 # FAIscript            | (inherit from FAIclass)
41 # FAIscriptEntry       | FAIscript, FAIpriority
42 # FAIvariable          | (inherit from FAIclass)
43 # FAIvariableEntry     | FAIvariableContent
44 # FAItemplate          | (inherit from FAIclass)
45 # FAItemplateEntry     | FAItemplateFile, FAItemplatePath, FAIowner, FAImode
46 # FAIpartitionTable    | (inherit from FAIclass)
47 # FAIpartitionDisk     | (inherit from FAIclass)
48 # FAIpartitionEntry    | FAIpartitionType, FAIpartitionNr, FAImountOptions,
49 #                      | FAIfsOptions, FAIfsType, FAImountPoint,FAIpartitionSize,
50 #                      | FAIpartitionFlag
51 # FAIpackageList       | FAIinstallMethod, FAIpackage
52 # FAIdebconfInfo       | FAIvariable, FAIvariableContent, FAIvariableType
53 # FAIobject            | FAIclass, FAIstatus, macAddress
54 #
55 # Rem.: Except of FAIdebconfInfo and FAIobject, all object classes are inherited
56 #       from FAIclass, so ALL cn's MUST be unique in your tree.
59 # Example tree in foobar.org, dn's of subtrees have been stripped for reasons
60 # of a better readability. The tree may be used to get an idea of how data is
61 # organized in the tree, use the contributed ldif file to load more detailed
62 # entries in your LDAP server or brain.
63 #
64 # dc=foobar,dc=org
65 # |-ou=somewhere
66 # | |-ou=accounts
67 # | |-ou=hosts
68 # | | |-cn=detritus
69 # | | | |-objectClass: FAIobject
70 # | | | |-description: Host entry for a rock solid server
71 # | | | |-macAddress: 00:11:8C:70:AC:01
72 # | | | |-FAIclass: FAIBASE
73 # | | | |-FAIclass: SRVPART
74 # | | | |-FAIclass: SRVBASE
75 # | | | |-FAIClass: SRVWWW
76 # | | | `-...
77 # | | `-cn=rincewind
78 # | |   |-objectClass: FAIobject
79 # | |   |-description: Hostentry for a casemodded workstation
80 # | |   |-macAddress: 00:08:15:47:11:00
81 # | |   `-FAIclass: WSDEFAULT
82 # ¦ `-ou=fai-configs
83 # .   |-cn=WSDEFAULT
84 #     | |-objectClass: FAIprofile
85 #     | |-description: Workstation default profile
86 #     | |-cn=FAIBASE
87 #     | | |-objectClass: FAIprofileEntry
88 #     | | |-FAIclass: FAIBASE
89 #     | | `-FAIpriority: 0
90 #     | |-cn=WSPART
91 #     | | |-objectClass: FAIprofileEntry
92 #     | | |-FAIclass: WSPART
93 #     | ¦ `-FAIpriority: 1
94 #     | 
95 #     |-cn=SRVPART
96 #     | |-objectClass: FAIpartition
97 #     | |-description: Common partition table for servers
98 #     | |-cn=disk1
99 #     | | |-objectClass: FAIpartitionDisk
100 #     | | |-FAImountPoint=/
101 #     | | | |-objectClass: FAIpartitionEntry
102 #     | | | |-FAIpartitionType: primary
103 #     | | | |-FAIpartitionNr: 1
104 #     | | | `-FAIfsType: ext3
105 #     | ¦ `-...
106 #     | 
107 #     |-cn=SRVBASE 
108 #     | |-objectClass: FAIpackageList
109 #     | |-description: Server base package list
110 #     | |-FAIinstallMethod: recommend
111 #     | |-FAIpackage=adduser
112 #     | | |-FAIvariable=adduser/homedir-permission
113 #     | | | |-FAIvariableContent: false
114 #     | | | `-FAIvariableType: boolean
115 #     | | `-...
116 #     | |-FAIpackage: apache2-common
117 #     | `-...
118 #     |
119 #     |-cn=SRVWWW
120 #     | |-objectClass: FAIscript
121 #     | |-description: A set of scripts that configure something
122 #     | |-cn=apache
123 #     | | |-objectClass: FAIscriptEntry
124 #     | ¦ `-FAIscript:: [base64 encoded sciript]
125 #     | 
126 #     |-cn=WSVARSET
127 #     | |-objectClass: FAIvariable
128 #     | |-description: Variable set for workstations
129 #     | |-cn=rootpw
130 #     ¦ | |-objectClass: FAIvariableEntry
131 #       ¦ `-FAIvariableContent: i00u1aVIB4cIo
134 ##
135 ## Attribute definitions (allocated from the GONICUS oid space)
136 ##
138 # Name       : FAIclass
139 # Description: Notes which FAI class name(s) are used in an FAI object
140 #              or in profile definitions. No unicode here, maximum
141 #              length is set to 64 characters.
142 attributetype ( 1.3.6.1.4.1.10098.1.1.5.1 NAME 'FAIclass'
143                 DESC 'Storage for FAI class names'
144                 EQUALITY caseExactMatch
145                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64})
147 # Name       : FAIpriority
148 # Description: Notes which priority scripts or profiles entries get. It is used
149 #              by FAI to generate a propper class list during the bootstrap
150 #              process. This is an unsigned integer value. 
151 attributetype ( 1.3.6.1.4.1.10098.1.1.5.2 NAME 'FAIpriority'
152                 DESC 'Storage for FAI priorities'
153                 EQUALITY integerMatch
154                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE)
156 # Name       : FAIpartitionType
157 # Description: As the name says, we store the type of a (hard-disk) partition
158 #              here. Type can be one of "primary" or "secondary". We did not
159 #              make this bool because there may be changes to the FAI partitioner
160 #              which we can't handle then. The maximum length is set to 16
161 #              characters.
162 attributetype ( 1.3.6.1.4.1.10098.1.1.5.3 NAME 'FAIpartitionType'
163                 DESC 'Storage for FAI partition types'
164                 EQUALITY caseExactMatch
165                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
167 # Name       : FAIpartitionNr
168 # Description: We use this value to store the device entries like "disk1" or
169 #              "sda8" with this attribute. Currently the storage is without the
170 #              leading "/dev/".
171 attributetype ( 1.3.6.1.4.1.10098.1.1.5.4 NAME 'FAIpartitionNr'
172                 DESC 'Storage for FAI partition devices'
173                 EQUALITY caseExactIA5Match
174                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
176 # Name       : FAImountOptions
177 # Description: We use this value to store special mount options for partitions.
178 #              For example some people tend to have /usr mounted as read-only.
179 attributetype ( 1.3.6.1.4.1.10098.1.1.5.5 NAME 'FAImountOptions'
180                 DESC 'Storage for FAI partition mount options'
181                 EQUALITY caseExactIA5Match
182                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
184 # Name       : FAImountPoint
185 # Description: Simply the mountpoint like found in the fstab. Examples are
186 #              '/usr', '/' and '/home'.
187 attributetype ( 1.3.6.1.4.1.10098.1.1.5.6 NAME 'FAImountPoint'
188                 DESC 'Storage for FAI partition mount points'
189                 EQUALITY caseExactIA5Match
190                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
192 # Name       : FAIfsOptions
193 # Description: In some cases you might want to influence the filesystem
194 #              generation commands by adding flags for larger inode tables, etc.
195 #              FAIfsOptions keeps the flags that are used by the mkfs workers.
196 attributetype ( 1.3.6.1.4.1.10098.1.1.5.7 NAME 'FAIfsOptions'
197                 DESC 'Storage for FAI partition generation options'
198                 EQUALITY caseExactIA5Match
199                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
201 # Name       : FAIfsType
202 # Description: Keeps the type of the filessytem a partition gets formatted with.
203 #              Examples are 'ext3', 'xfs', etc. Please refer to the FAI manual
204 #              for valid types.
205 attributetype ( 1.3.6.1.4.1.10098.1.1.5.8 NAME 'FAIfsType'
206                 DESC 'Storage for FAI partition types'
207                 EQUALITY caseExactMatch
208                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE)
210 # Name       : FAIscript
211 # Description: Store multiline text, mostly used for scripts and hooks. 
212 attributetype ( 1.3.6.1.4.1.10098.1.1.5.9 NAME 'FAIscript'
213                 DESC 'General storage field for multiline text aka scripts'
214                 EQUALITY caseIgnoreIA5Match
215                 SUBSTR caseIgnoreIA5SubstringsMatch
216                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
218 # Name       : FAItask
219 # Description: Assign a hook to a special task. You can use it i.e. to alter
220 #              partition tables, etc. The FAI manual hold a list of valid
221 #              tasks for you.
222 attributetype ( 1.3.6.1.4.1.10098.1.1.5.10 NAME 'FAItask'
223                 DESC 'Note for which FAI tasks a hook is made for'
224                 EQUALITY caseIgnoreIA5Match
225                 SUBSTR caseIgnoreIA5SubstringsMatch
226                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
228 # Name       : FAIvariable
229 # Description: Keeps the name of a debconf template variable. The value is
230 #              stored inside of FAIvariableContent, the type inside
231 #              FAIvariableType.
232 attributetype ( 1.3.6.1.4.1.10098.1.1.5.11 NAME 'FAIvariable'
233                 DESC 'Store debconf template variable names'
234                 EQUALITY caseIgnoreIA5Match
235                 SUBSTR caseIgnoreIA5SubstringsMatch
236                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
238 # Name       : FAIvariableContent
239 # Description: Keeps the content of a debconf template variable. See
240 #              FAIvariable for more informations.
241 attributetype ( 1.3.6.1.4.1.10098.1.1.5.12 NAME 'FAIvariableContent'
242                 DESC 'Store debconf template variable contents'
243                 EQUALITY caseIgnoreIA5Match
244                 SUBSTR caseIgnoreIA5SubstringsMatch
245                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
247 # Name       : FAIvariableType
248 # Description: Keeps the type of a debconf template variable. See
249 #              FAIvariable for more informations.
250 attributetype ( 1.3.6.1.4.1.10098.1.1.5.13 NAME 'FAIvariableType'
251                 DESC 'Store debconf template variable type'
252                 EQUALITY caseIgnoreIA5Match
253                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
255 # Name       : FAIinstallMethod
256 # Description: Keeps a per package setting on how packages should be
257 #              installed. This is the normal line you'd specify in
258 #              our ordinary package lists.
259 attributetype ( 1.3.6.1.4.1.10098.1.1.5.14 NAME 'FAIinstallMethod'
260                 DESC 'Store debian package installation flag'
261                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
263 # Name       : FAIpackage
264 # Description: Keeps an entry of a package list. Each FAIpackage object
265 #              may be a parent for FAIdebconfInfo objects.
266 attributetype ( 1.3.6.1.4.1.10098.1.1.5.15 NAME 'FAIpackage'
267                 DESC 'Store debian package name'
268                 EQUALITY caseIgnoreIA5Match
269                 SUBSTR caseIgnoreIA5SubstringsMatch
270                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26)
272 # Name       : FAItemplateFile
273 # Description: Keeps complete template files that are copied to the
274 #              freshly installed system later on. The tasks path is
275 #              stored in FAItemplatePath. Use ;binary for this attribute.
276 attributetype ( 1.3.6.1.4.1.10098.1.1.5.16 NAME 'FAItemplateFile'
277                 DESC 'Store complete template files'
278                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE)
280 # Name       : FAItemplatePath
281 # Description: Keeps the path used for template files. See FAItemplateFile
282 #              for more informations.
283 attributetype ( 1.3.6.1.4.1.10098.1.1.5.17 NAME 'FAItemplatePath'
284                 DESC 'Store template file storage path'
285                 EQUALITY caseIgnoreIA5Match
286                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
288 # Name       : FAIowner
289 # Description: Keeps the owner used for template files. Put in the unix
290 #              way like user.group.
291 attributetype ( 1.3.6.1.4.1.10098.1.1.5.18 NAME 'FAIowner'
292                 DESC 'Store template file storage path'
293                 EQUALITY caseIgnoreIA5Match
294                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
296 # Name       : FAImode
297 # Description: Keeps the file mode used for template files. Put in the unix
298 #              way like 775.
299 attributetype ( 1.3.6.1.4.1.10098.1.1.5.19 NAME 'FAImode'
300                 DESC 'Store template file storage path'
301                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE)
302                 
303 # Name       : FAIstatus
304 # Desrciption: Normally the fai daemon should set the status flag to the
305 #             current status. Possible states are:
306 #             * update-needed
307 #             * update-running
308 #             * update-failed
309 #             * update-ok
310 #             * install-running
311 #             * install-failed
312 #             * install-ok
313 #             Additional informations can be taken from the log files if
314 #             some machine is set to -failed.
315 attributetype ( 1.3.6.1.4.1.10098.1.1.5.20 NAME 'FAIstatus'
316                 DESC 'Store FAI progress status'
317                 EQUALITY caseIgnoreIA5Match
318                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
320 # Name       : FAIpackagelistDependency
321 # Description: This field stores dependency informations for package lists.
322 #              It is used to install i.e. ati specific packages when the
323 #              hardware detection detects ATI gfx cards.
324 attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency'
325                 DESC 'Store package lists where we depend from'
326                 EQUALITY caseIgnoreIA5Match
327                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
329 attributetype ( 1.3.6.1.4.1.10098.1.1.5.22 NAME 'FAIpartitionSize'
330                 DESC 'TODO'
331                 EQUALITY caseIgnoreIA5Match
332                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
334 attributetype ( 1.3.6.1.4.1.10098.1.1.5.23 NAME 'FAIpartitionFlags'
335                 DESC 'TODO'
336                 EQUALITY caseIgnoreIA5Match
337                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
339 attributetype ( 1.3.6.1.4.1.10098.1.1.5.24 NAME 'FAIclassType'
340                 DESC 'TODO'
341                 EQUALITY caseIgnoreIA5Match
342                 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
344 ##
345 ## Object class definitions (allocated from the GONICUS oid space)
346 ##
348 # Name       : FAIclass
349 # Description: FAIclass is the basic container wich includes a
350 #              common name and a description.
351 objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
352         SUP top STRUCTURAL
353         DESC 'Generic class parent for FAI objects'
354         MUST ( cn ) MAY  ( description $ FAIclassType) )
356 # Name       : FAIprofile
357 # Description: FAIprofile which bundles a set of FAIclass entries
358 #              like FAIpartition and FAIpackageList. It is used
359 #              to simplify administration tasks for so called junior
360 #              administrators.
361 objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile'
362         SUP FAIclass STRUCTURAL
363         DESC 'FAI profile container for multiple class objects' 
364         MUST ( FAIclass ) )
366 # Name       : FAIpartition
367 # Description: Each installation profile should contain a partition
368 #              table in order to perform well. FAIpartitionTable is
369 #              a container for partition entries.
370 objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionTable'
371         SUP FAIclass STRUCTURAL
372         DESC 'Stores FAI partition tables' )
374 # Name       : FAIpartitionDisk
375 # Description: Each installation profile should contain a partition
376 #              table in order to perform well. FAIpartitionTable is
377 #              a container for partition entries.
378 objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionDisk'
379         SUP FAIclass STRUCTURAL
380         DESC 'Stores FAI partition tables' )
382 # Name       : FAIpartitionEntry
383 # Description: This object defines a single partition entry for the
384 #              FAI partitioner.
385 objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIpartitionEntry'
386         SUP FAIpartitionTable STRUCTURAL
387         DESC 'One partition table entry'
388         MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
389                FAImountPoint $ FAIpartitionSize )
390         MAY  ( FAImountOptions $ FAIfsOptions $ FAIpartitionFlags ) )
392 # Name       : FAIhook
393 # Description: Container for hooks
394 objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhook'
395         SUP FAIclass STRUCTURAL
396         DESC 'Stores FAI partition tables' )
398 # Name       : FAIhookEntry
399 # Description: Hooks are stored with their FAI task inside the
400 #              FAIhook object.
401 objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIhookEntry'
402         SUP FAIclass STRUCTURAL
403         DESC 'FAI hook storage'
404         MUST ( FAIscript $ FAItask ) )
406 # Name       : FAIscriptEntry
407 # Description: Container for scripts
408 objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscriptEntry'
409         SUP FAIclass STRUCTURAL
410         DESC 'FAI script storage'
411         MUST ( FAIscript $ FAIpriority ) )
413 # Name       : FAIscript
414 # Description: Hooks and scripts are somewhat similar.
415 objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIscript'
416         SUP FAIclass STRUCTURAL
417         DESC 'FAI script storage' )
419 # Name       : FAIvariable
420 # Description: Store a set of variables in this container.
421 objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariable'
422         SUP FAIclass STRUCTURAL
423         DESC 'Stores FAI variables sub entries' )
425 # Name       : FAIvariableEntry
426 # Description: Stores a single variable.
427 objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIvariableEntry'
428         SUP FAIvariable STRUCTURAL
429         DESC 'Stores single variable entries'
430         MUST ( FAIvariableContent ) )
432 # Name       : FAIpackagelist
433 # Description: Stores a complete package list and is container
434 #              for several FAIdebconfInfo scripts
435 objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAIpackageList'
436         SUP FAIclass STRUCTURAL
437         DESC 'Stores complete package lists'
438         MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod ) )
440 # Name       : FAItemplate
441 # Description: Container for template objects.
442 objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplate'
443         SUP FAIclass STRUCTURAL
444         DESC 'Container for template objects' )
446 # Name       : FAItemplateEntry
447 # Description: Stores FAI templates and the corresponding path.
448 objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAItemplateEntry'
449         SUP FAItemplate STRUCTURAL
450         DESC 'Stores real file templates'
451         MUST ( FAItemplateFile $ FAItemplatePath ) )
452         
453 # Name       : FAIdebconfInfo
454 # Description: Stores debconf information like shown in
455 #              debconf-getselections.
456 objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIdebconfInfo'
457         SUP top STRUCTURAL
458         DESC 'Stores debconf informations for single packages'
459         MUST ( FAIpackage $ FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent ) )
461 # Name       : FAIobject
462 # Description: Marks objects to have a set of FAI classes.
463 objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIobject'
464         SUP top AUXILIARY
465         DESC 'Marks an object as an FAI object.'
466         MUST ( FAIclass $ macAddress ) MAY ( FAIstatus ) )
468 ### END of FAI schema file