############################################################################### # # # F A I - Fully automatic installation LDAP schema file # # # #-----------------------------------------------------------------------------# # Last modified: Cajus Pollmeier / 20050902 # #-----------------------------------------------------------------------------# # Copyright 2005, Cajus Pollmeier # # Thomas Lange # #-----------------------------------------------------------------------------# # This program is free software; you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation; either version 2 of the License, or # # (at your option) any later version. # # # # This program is distributed in the hope that it will be useful, # # but WITHOUT ANY WARRANTY; without even the implied warranty of # # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # # GNU General Public License for more details. # # # # You should have received a copy of the GNU General Public License # # along with this program; if not, write to the Free Software # # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # ############################################################################### # This schema file has dependencies to the nis.schema. Please make sure that # the inclusion order in your slapd.conf is correct. # Here's a short list of object class / attribute relationship. For a more # detailed description take a look at the definitions below. # # Objectclasses | Attributes # ----------------------------------------------------------------------------- # FAIclass | cn,description,FAIclassType # FAIprofile | FAIclass # FAIhook | (inherit from FAIclass) # FAIhookEntry | FAIscript, FAItask # FAIscript | (inherit from FAIclass) # FAIscriptEntry | FAIscript, FAIpriority # FAIvariable | (inherit from FAIclass) # FAIvariableEntry | FAIvariableContent # FAItemplate | (inherit from FAIclass) # FAItemplateEntry | FAItemplateFile, FAItemplatePath, FAIowner, FAImode # FAIpartitionTable | (inherit from FAIclass) # FAIpartitionDisk | (inherit from FAIclass) # FAIpartitionEntry | FAIpartitionType, FAIpartitionNr, FAImountOptions, # | FAIfsOptions, FAIfsType, FAImountPoint,FAIpartitionSize, # | FAIpartitionFlag # FAIpackageList | FAIinstallMethod, FAIpackage # FAIdebconfInfo | FAIvariable, FAIvariableContent, FAIvariableType # FAIobject | FAIclass, FAIstatus, macAddress # FAIrepository | FAIdebianMirror, FAIdebianRelease, FAIdebianSection # # Rem.: Except of FAIdebconfInfo and FAIobject, all object classes are inherited # from FAIclass, so ALL cn's MUST be unique in your tree. ## ## Attribute definitions (allocated from the GONICUS oid space) ## # Name : FAIclass # Description: Notes which FAI class name(s) are used in an FAI object # or in profile definitions. No unicode here, maximum # length is set to 64 characters. attributetype ( 1.3.6.1.4.1.10098.1.1.5.1 NAME 'FAIclass' DESC 'Storage for FAI class names' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{64}) # Name : FAIpriority # Description: Notes which priority scripts or profiles entries get. It is used # by FAI to generate a propper class list during the bootstrap # process. This is an unsigned integer value. attributetype ( 1.3.6.1.4.1.10098.1.1.5.2 NAME 'FAIpriority' DESC 'Storage for FAI priorities' EQUALITY integerMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 SINGLE-VALUE) # Name : FAIpartitionType # Description: As the name says, we store the type of a (hard-disk) partition # here. Type can be one of "primary" or "secondary". We did not # make this bool because there may be changes to the FAI partitioner # which we can't handle then. The maximum length is set to 16 # characters. attributetype ( 1.3.6.1.4.1.10098.1.1.5.3 NAME 'FAIpartitionType' DESC 'Storage for FAI partition types' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE) # Name : FAIpartitionNr # Description: We use this value to store the device entries like "disk1" or # "sda8" with this attribute. Currently the storage is without the # leading "/dev/". attributetype ( 1.3.6.1.4.1.10098.1.1.5.4 NAME 'FAIpartitionNr' DESC 'Storage for FAI partition devices' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAImountOptions # Description: We use this value to store special mount options for partitions. # For example some people tend to have /usr mounted as read-only. attributetype ( 1.3.6.1.4.1.10098.1.1.5.5 NAME 'FAImountOptions' DESC 'Storage for FAI partition mount options' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAImountPoint # Description: Simply the mountpoint like found in the fstab. Examples are # '/usr', '/' and '/home'. attributetype ( 1.3.6.1.4.1.10098.1.1.5.6 NAME 'FAImountPoint' DESC 'Storage for FAI partition mount points' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIfsOptions # Description: In some cases you might want to influence the filesystem # generation commands by adding flags for larger inode tables, etc. # FAIfsOptions keeps the flags that are used by the mkfs workers. attributetype ( 1.3.6.1.4.1.10098.1.1.5.7 NAME 'FAIfsOptions' DESC 'Storage for FAI partition generation options' EQUALITY caseExactIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIfsType # Description: Keeps the type of the filessytem a partition gets formatted with. # Examples are 'ext3', 'xfs', etc. Please refer to the FAI manual # for valid types. attributetype ( 1.3.6.1.4.1.10098.1.1.5.8 NAME 'FAIfsType' DESC 'Storage for FAI partition types' EQUALITY caseExactMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{16} SINGLE-VALUE) # Name : FAIscript # Description: Store multiline text, mostly used for scripts and hooks. attributetype ( 1.3.6.1.4.1.10098.1.1.5.9 NAME 'FAIscript' DESC 'General storage field for multiline text aka scripts' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE) # Name : FAItask # Description: Assign a hook to a special task. You can use it i.e. to alter # partition tables, etc. The FAI manual hold a list of valid # tasks for you. attributetype ( 1.3.6.1.4.1.10098.1.1.5.10 NAME 'FAItask' DESC 'Note for which FAI tasks a hook is made for' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIvariable # Description: Keeps the name of a debconf template variable. The value is # stored inside of FAIvariableContent, the type inside # FAIvariableType. attributetype ( 1.3.6.1.4.1.10098.1.1.5.11 NAME 'FAIvariable' DESC 'Store debconf template variable names' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIvariableContent # Description: Keeps the content of a debconf template variable. See # FAIvariable for more informations. attributetype ( 1.3.6.1.4.1.10098.1.1.5.12 NAME 'FAIvariableContent' DESC 'Store debconf template variable contents' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIvariableType # Description: Keeps the type of a debconf template variable. See # FAIvariable for more informations. attributetype ( 1.3.6.1.4.1.10098.1.1.5.13 NAME 'FAIvariableType' DESC 'Store debconf template variable type' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIinstallMethod # Description: Keeps a per package setting on how packages should be # installed. This is the normal line you'd specify in # our ordinary package lists. attributetype ( 1.3.6.1.4.1.10098.1.1.5.14 NAME 'FAIinstallMethod' DESC 'Store debian package installation flag' SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIpackage # Description: Keeps an entry of a package list. Each FAIpackage object # may be a parent for FAIdebconfInfo objects. attributetype ( 1.3.6.1.4.1.10098.1.1.5.15 NAME 'FAIpackage' DESC 'Store debian package name' EQUALITY caseIgnoreIA5Match SUBSTR caseIgnoreIA5SubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) # Name : FAItemplateFile # Description: Keeps complete template files that are copied to the # freshly installed system later on. The tasks path is # stored in FAItemplatePath. Use ;binary for this attribute. attributetype ( 1.3.6.1.4.1.10098.1.1.5.16 NAME 'FAItemplateFile' DESC 'Store complete template files' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5 SINGLE-VALUE) # Name : FAItemplatePath # Description: Keeps the path used for template files. See FAItemplateFile # for more informations. attributetype ( 1.3.6.1.4.1.10098.1.1.5.17 NAME 'FAItemplatePath' DESC 'Store template file storage path' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIowner # Description: Keeps the owner used for template files. Put in the unix # way like user.group. attributetype ( 1.3.6.1.4.1.10098.1.1.5.18 NAME 'FAIowner' DESC 'Store template file storage path' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAImode # Description: Keeps the file mode used for template files. Put in the unix # way like 775. attributetype ( 1.3.6.1.4.1.10098.1.1.5.19 NAME 'FAImode' DESC 'Store template file storage path' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 SINGLE-VALUE) # Name : FAIstatus # Desrciption: Normally the fai daemon should set the status flag to the # current status. Possible states are: # * update-needed # * update-running # * update-failed # * update-ok # * install-running # * install-failed # * install-ok # Additional informations can be taken from the log files if # some machine is set to -failed. attributetype ( 1.3.6.1.4.1.10098.1.1.5.20 NAME 'FAIstatus' DESC 'Store FAI progress status' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIpackagelistDependency # Description: This field stores dependency informations for package lists. # It is used to install i.e. ati specific packages when the # hardware detection detects ATI gfx cards. attributetype ( 1.3.6.1.4.1.10098.1.1.5.21 NAME 'FAIpackagelistDependency' DESC 'Store package lists where we depend from' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIpartitionSize # Description: Store a size or a size range for partitions. I.e. 50, # 50-200. attributetype ( 1.3.6.1.4.1.10098.1.1.5.22 NAME 'FAIpartitionSize' DESC 'Store size range for partition size' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIpartitionFlags # Description: Optionally this flag contains the "preserve" keyword, in # order to influence partitioning. attributetype ( 1.3.6.1.4.1.10098.1.1.5.23 NAME 'FAIpartitionFlags' DESC 'Optional flags like "preserve"' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIdebianMirror # Description: Used for bootstrap sources.list settings. It contains # the mirror server url. attributetype ( 1.3.6.1.4.1.10098.1.1.5.24 NAME 'FAIdebianMirror' DESC 'TODO' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIdebianRelease # Description: Used for bootstrap sources.list settings. It contains # the release. attributetype ( 1.3.6.1.4.1.10098.1.1.5.25 NAME 'FAIdebianRelease' DESC 'TODO' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE) # Name : FAIdebianSection # Description: Used for bootstrap sources.list settings. It contains # the section. Multiple Sections get appended. attributetype ( 1.3.6.1.4.1.10098.1.1.5.26 NAME 'FAIdebianSection' DESC 'TODO' EQUALITY caseIgnoreIA5Match SYNTAX 1.3.6.1.4.1.1466.115.121.1.26) ## ## Object class definitions (allocated from the GONICUS oid space) ## # Name : FAIclass # Description: FAIclass is the basic container wich includes a # common name and a description. objectclass (1.3.6.1.4.1.10098.1.2.1.40.1 NAME 'FAIclass' SUP top STRUCTURAL DESC 'Generic class parent for FAI objects' MUST ( cn ) MAY ( description ) ) # Name : FAIprofile # Description: FAIprofile which bundles a set of FAIclass entries # like FAIpartition and FAIpackageList. It is used # to simplify administration tasks for so called junior # administrators. objectclass (1.3.6.1.4.1.10098.1.2.1.40.2 NAME 'FAIprofile' SUP FAIclass STRUCTURAL DESC 'FAI profile container for multiple class objects' MUST ( FAIclass ) ) # Name : FAIpartition # Description: Each installation profile should contain a partition # table in order to perform well. FAIpartitionTable is # a container for partition entries. objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIpartitionTable' SUP FAIclass STRUCTURAL DESC 'Stores FAI partition tables' ) # Name : FAIpartitionDisk # Description: Each installation profile should contain a partition # table in order to perform well. FAIpartitionTable is # a container for partition entries. objectclass (1.3.6.1.4.1.10098.1.2.1.40.4 NAME 'FAIpartitionDisk' SUP FAIclass STRUCTURAL DESC 'Stores FAI partition tables' ) # Name : FAIpartitionEntry # Description: This object defines a single partition entry for the # FAI partitioner. objectclass (1.3.6.1.4.1.10098.1.2.1.40.5 NAME 'FAIpartitionEntry' SUP FAIpartitionTable STRUCTURAL DESC 'One partition table entry' MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $ FAImountPoint $ FAIpartitionSize ) MAY ( FAImountOptions $ FAIfsOptions $ FAIpartitionFlags ) ) # Name : FAIhook # Description: Container for hooks objectclass (1.3.6.1.4.1.10098.1.2.1.40.6 NAME 'FAIhook' SUP FAIclass STRUCTURAL DESC 'Stores FAI partition tables' ) # Name : FAIhookEntry # Description: Hooks are stored with their FAI task inside the # FAIhook object. objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 NAME 'FAIhookEntry' SUP FAIclass STRUCTURAL DESC 'FAI hook storage' MUST ( FAIscript $ FAItask ) ) # Name : FAIscriptEntry # Description: Container for scripts objectclass (1.3.6.1.4.1.10098.1.2.1.40.8 NAME 'FAIscriptEntry' SUP FAIclass STRUCTURAL DESC 'FAI script storage' MUST ( FAIscript $ FAIpriority ) ) # Name : FAIscript # Description: Hooks and scripts are somewhat similar. objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript' SUP FAIclass STRUCTURAL DESC 'FAI script storage' ) # Name : FAIvariable # Description: Store a set of variables in this container. objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIvariable' SUP FAIclass STRUCTURAL DESC 'Stores FAI variables sub entries' ) # Name : FAIvariableEntry # Description: Stores a single variable. objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 NAME 'FAIvariableEntry' SUP FAIvariable STRUCTURAL DESC 'Stores single variable entries' MUST ( FAIvariableContent ) ) # Name : FAIpackagelist # Description: Stores a complete package list and is container # for several FAIdebconfInfo scripts objectclass (1.3.6.1.4.1.10098.1.2.1.40.12 NAME 'FAIpackageList' SUP FAIclass STRUCTURAL DESC 'Stores complete package lists' MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallMethod ) ) # Name : FAItemplate # Description: Container for template objects. objectclass (1.3.6.1.4.1.10098.1.2.1.40.13 NAME 'FAItemplate' SUP FAIclass STRUCTURAL DESC 'Container for template objects' ) # Name : FAItemplateEntry # Description: Stores FAI templates and the corresponding path. objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 NAME 'FAItemplateEntry' SUP FAItemplate STRUCTURAL DESC 'Stores real file templates' MUST ( FAItemplateFile $ FAItemplatePath $ FAIowner $ FAImode ) ) # Name : FAIdebconfInfo # Description: Stores debconf information like shown in # debconf-getselections. objectclass (1.3.6.1.4.1.10098.1.2.1.40.15 NAME 'FAIdebconfInfo' SUP top STRUCTURAL DESC 'Stores debconf informations for single packages' MUST ( FAIpackage $ FAIvariable $ FAIvariableType ) MAY ( FAIvariableContent ) ) # Name : FAIobject # Description: Marks objects to have a set of FAI classes. objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIobject' SUP top AUXILIARY DESC 'Marks an object as an FAI object.' MAY ( FAIstatus $ FAIclass $ FAIdebianMirror $ macAddress) ) # Name : FAIrepository # Description: Marks objects to have a set of FAI classes. objectclass (1.3.6.1.4.1.10098.1.2.1.40.17 NAME 'FAIrepository' SUP top AUXILIARY DESC 'Provides per object repository informations.' MUST ( FAIdebianMirror $ FAIdebianRelease $ FAIdebianSection ) ) ### END of FAI schema file