610c6252a1e1f4fb14e7ab7a52cc328579f414c2
1 ###############################################################################
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
37 # FAIprofile | (inherit from FAIclass)
38 # FAIprofileEntry | FAIclass, FAIpriority
39 # FAIhook | (inherit from FAIclass)
40 # FAIhookEntry | FAIscript, FAItask
41 # FAIscript | (inherit from FAIclass)
42 # FAIscriptEntry | FAIscript, FAIpriority
43 # FAIvariable | (inherit from FAIclass)
44 # FAIvariableEntry | FAIvariableContent
45 # FAItemplate | (inherit from FAIclass)
46 # FAItemplateEntry | FAItemplateFile, FAItemplatePath, FAIowner, FAImode
47 # FAIpartition | (inherit from FAIclass)
48 # FAIpartitionDisk | (inherit from FAIclass)
49 # FAIpartitionEntry | FAIpartitionType, FAIpartitionNr, FAImountOptions,
50 # | FAIfsOptions, FAIfsType, FAImountPoint
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 EQUALITY caseIgnoreIA5Match
302 SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE)
304 # Name : FAIstatus
305 # Desrciption: Normally the fai daemon should set the status flag to the
306 # current status. Possible states are:
307 # * update-needed
308 # * update-running
309 # * update-failed
310 # * update-ok
311 # * install-running
312 # * install-failed
313 # * install-ok
314 # Additional informations can be taken from the log files if
315 # some machine is set to -failed.
316 attributetype ( 1.3.6.1.4.1.10098.1.1.5.20 NAME 'FAIstatus'
317 DESC 'Store FAI progress status'
318 EQUALITY caseIgnoreIA5Match
319 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
321 # Name : FAIpackagelistDependency
322 # Description: This field stores dependency informations for package lists.
323 # It is used to install i.e. ati specific packages when the
324 # hardware detection detects ATI gfx cards.
325 attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency'
326 DESC 'Store package lists where we depend from'
327 EQUALITY caseIgnoreIA5Match
328 SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE)
330 ##
331 ## Object class definitions (allocated from the GONICUS oid space)
332 ##
334 # Name : FAIclass
335 # Description: FAIclass is the basic container wich includes a
336 # common name and a description.
337 objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass'
338 SUP top STRUCTURAL
339 DESC 'Generic class parent for FAI objects'
340 MUST ( cn ) MAY ( description ) )
342 # Name : FAIprofile
343 # Description: FAIprofile which bundles a set of FAIclass entries
344 # like FAIpartition and FAIpackageList. It is used
345 # to simplify administration tasks for so called junior
346 # administrators.
347 objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile'
348 SUP FAIclass STRUCTURAL
349 DESC 'FAI profile container for multiple class objects' )
351 # Name : FAIprofileEntry
352 # Description: FAIprofileEntry is one subentry inside a FAIprofile.
353 objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIprofileEntry'
354 SUP FAIprofile STRUCTURAL
355 DESC 'One class object stored under FAIprofile'
356 MUST ( FAIclass $ FAIpriority ) )
358 # Name : FAIpartition
359 # Description: Each installation profile should contain a partition
360 # table in order to perform well. FAIpartitionTable is
361 # a container for partition entries.
362 objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionTable'
363 SUP FAIclass STRUCTURAL
364 DESC 'Stores FAI partition tables' )
366 # Name : FAIpartitionDisk
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.5 NAME 'FAIpartitionDisk'
371 SUP FAIclass STRUCTURAL
372 DESC 'Stores FAI partition tables' )
374 # Name : FAIpartitionEntry
375 # Description: This object defines a single partition entry for the
376 # FAI partitioner.
377 objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIpartitionEntry'
378 SUP FAIpartitionTable STRUCTURAL
379 DESC 'One partition table entry'
380 MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
381 FAImountPoint )
382 MAY ( FAImountOptions $ FAIfsOptions ) )
384 # Name : FAIhook
385 # Description: Container for hooks
386 objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhook'
387 SUP FAIclass STRUCTURAL
388 DESC 'Stores FAI partition tables' )
390 # Name : FAIhookEntry
391 # Description: Hooks are stored with their FAI task inside the
392 # FAIhook object.
393 objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIhookEntry'
394 SUP FAIclass STRUCTURAL
395 DESC 'FAI hook storage'
396 MUST ( FAIscript $ FAItask ) )
398 # Name : FAIscript
399 # Description: Container for scripts
400 objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
401 SUP FAIclass STRUCTURAL
402 DESC 'FAI script storage'
403 MUST ( FAIscript $ FAIpriority ) )
405 # Name : FAIscriptEntry
406 # Description: Hooks and scripts are somewhat similar.
407 objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIscriptEntry'
408 SUP FAIclass STRUCTURAL
409 DESC 'FAI script storage'
410 MUST ( FAIscript $ FAIpriority ) )
412 # Name : FAIvariable
413 # Description: Store a set of variables in this container.
414 objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariable'
415 SUP FAIclass STRUCTURAL
416 DESC 'Stores FAI variables sub entries' )
418 # Name : FAIvariableEntry
419 # Description: Stores a single variable.
420 objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIvariableEntry'
421 SUP FAIvariable STRUCTURAL
422 DESC 'Stores single variable entries'
423 MUST ( FAIvariableContent ) )
425 # Name : FAIpackagelist
426 # Description: Stores a complete package list and is container
427 # for several FAIdebconfInfo scripts
428 objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAIpackageList'
429 SUP FAIclass STRUCTURAL
430 DESC 'Stores complete package lists'
431 MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod ) )
433 # Name : FAItemplate
434 # Description: Container for template objects.
435 objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplate'
436 SUP FAIclass STRUCTURAL
437 DESC 'Container for template objects' )
439 # Name : FAItemplateEntry
440 # Description: Stores FAI templates and the corresponding path.
441 objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAItemplateEntry'
442 SUP FAItemplate STRUCTURAL
443 DESC 'Stores real file templates'
444 MUST ( FAItemplateFile $ FAItemplatePath ) )
446 # Name : FAIdebconfInfo
447 # Description: Stores debconf information like shown in
448 # debconf-getselections.
449 objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIdebconfInfo'
450 SUP FAIclass STRUCTURAL
451 DESC 'Stores debconf informations for single packages'
452 MUST ( FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent ) )
454 # Name : FAIobject
455 # Description: Marks objects to have a set of FAI classes.
456 objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIobject'
457 SUP top AUXILIARY
458 DESC 'Marks an object as an FAI object.'
459 MUST ( FAIclass $ macAddress ) MAY ( FAIstatus ) )
461 ### END of FAI schema file