Code

Added fai schema file
authorcajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 2 Sep 2005 07:18:57 +0000 (07:18 +0000)
committercajus <cajus@594d385d-05f5-0310-b6e9-bd551577e9d8>
Fri, 2 Sep 2005 07:18:57 +0000 (07:18 +0000)
git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@1298 594d385d-05f5-0310-b6e9-bd551577e9d8

contrib/openldap/fai.schema [new file with mode: 0644]

diff --git a/contrib/openldap/fai.schema b/contrib/openldap/fai.schema
new file mode 100644 (file)
index 0000000..725dc0a
--- /dev/null
@@ -0,0 +1,461 @@
+###############################################################################
+#                                                                             #
+#            F A I - Fully automatic installation LDAP schema file            #
+#                                                                             #
+#-----------------------------------------------------------------------------#
+# Date: 20050902                                                              #
+#-----------------------------------------------------------------------------#
+#             Copyright 2005, Cajus Pollmeier <cajus@debian.org>              #
+#                             Thomas Lange <lange@debian.org>                 #
+#-----------------------------------------------------------------------------#
+# 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
+# FAIprofile           | (inherit from FAIclass)
+# FAIprofileEntry      | FAIclass, FAIpriority
+# 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
+# FAIpartition         | (inherit from FAIclass)
+# FAIpartitionDisk     | (inherit from FAIclass)
+# FAIpartitionEntry    | FAIpartitionType, FAIpartitionNr, FAImountOptions,
+#                      | FAIfsOptions, FAIfsType, FAImountPoint
+# FAIpackageList       | FAIinstallFlag, FAIpackage
+# FAIdebconfInfo       | FAIvariable, FAIvariableContent, FAIvariableType
+# FAIobject            | FAIclass, FAIstatus, macAddress
+#
+# Rem.: Except of FAIdebconfInfo and FAIobject, all object classes are inherited
+#       from FAIclass, so ALL cn's MUST be unique in your tree.
+
+
+# Example tree in foobar.org, dn's of subtrees have been stripped for reasons
+# of a better readability. The tree may be used to get an idea of how data is
+# organized in the tree, use the contributed ldif file to load more detailed
+# entries in your LDAP server or brain.
+#
+# dc=foobar,dc=org
+# |-ou=somewhere
+# | |-ou=accounts
+# | |-ou=hosts
+# | | |-cn=detritus
+# | | | |-objectClass: FAIobject
+# | | | |-description: Host entry for a rock solid server
+# | | | |-macAddress: 00:11:8C:70:AC:01
+# | | | |-FAIclass: FAIBASE
+# | | | |-FAIclass: SRVPART
+# | | | |-FAIclass: SRVBASE
+# | | | |-FAIClass: SRVWWW
+# | | | `-...
+# | | `-cn=rincewind
+# | |   |-objectClass: FAIobject
+# | |   |-description: Hostentry for a casemodded workstation
+# | |   |-macAddress: 00:08:15:47:11:00
+# | |   `-FAIclass: WSDEFAULT
+# ¦ `-ou=fai-configs
+# .   |-cn=WSDEFAULT
+#     | |-objectClass: FAIprofile
+#     | |-description: Workstation default profile
+#     | |-cn=FAIBASE
+#     | | |-objectClass: FAIprofileEntry
+#     | | |-FAIclass: FAIBASE
+#     | | `-FAIpriority: 0
+#     | |-cn=WSPART
+#     | | |-objectClass: FAIprofileEntry
+#     | | |-FAIclass: WSPART
+#     | ¦ `-FAIpriority: 1
+#     | 
+#     |-cn=SRVPART
+#     | |-objectClass: FAIpartition
+#     | |-description: Common partition table for servers
+#     | |-cn=disk1
+#     | | |-objectClass: FAIpartitionDisk
+#     | | |-FAImountPoint=/
+#     | | | |-objectClass: FAIpartitionEntry
+#     | | | |-FAIpartitionType: primary
+#     | | | |-FAIpartitionNr: 1
+#     | | | `-FAIfsType: ext3
+#     | ¦ `-...
+#     | 
+#     |-cn=SRVBASE 
+#     | |-objectClass: FAIpackageList
+#     | |-description: Server base package list
+#     | |-FAIinstallFlag: recommend
+#     | |-FAIpackage=adduser
+#     | | |-FAIvariable=adduser/homedir-permission
+#     | | | |-FAIvariableContent: false
+#     | | | `-FAIvariableType: boolean
+#     | | `-...
+#     | |-FAIpackage: apache2-common
+#     | `-...
+#     |
+#     |-cn=SRVWWW
+#     | |-objectClass: FAIscript
+#     | |-description: A set of scripts that configure something
+#     | |-cn=apache
+#     | | |-objectClass: FAIscriptEntry
+#     | ¦ `-FAIscript:: [base64 encoded sciript]
+#     | 
+#     |-cn=WSVARSET
+#     | |-objectClass: FAIvariable
+#     | |-description: Variable set for workstations
+#     | |-cn=rootpw
+#     ¦ | |-objectClass: FAIvariableEntry
+#       ¦ `-FAIvariableContent: i00u1aVIB4cIo
+
+
+##
+## 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'
+               EQUALITY caseIgnoreIA5Match
+               SUBSTR caseIgnoreIA5SubstringsMatch
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 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       : FAIinstallFlag
+# 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 'FAIinstallFlag'
+               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'
+               EQUALITY caseIgnoreIA5Match
+               SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 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)
+
+##
+## 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' )
+
+# Name       : FAIprofileEntry
+# Description: FAIprofileEntry is one subentry inside a FAIprofile. 
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.3 NAME 'FAIprofileEntry'
+       SUP FAIprofile STRUCTURAL
+       DESC 'One class object stored under FAIprofile'
+       MUST ( FAIclass $ FAIpriority ) )
+
+# 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.4 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.5 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.6 NAME 'FAIpartitionEntry'
+       SUP FAIpartitionTable STRUCTURAL
+       DESC 'One partition table entry'
+       MUST ( FAIpartitionType $ FAIpartitionNr $ FAIfsType $
+              FAImountPoint )
+       MAY  ( FAImountOptions $ FAIfsOptions ) )
+
+# Name       : FAIhook
+# Description: Container for hooks
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.7 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.8 NAME 'FAIhookEntry'
+       SUP FAIclass STRUCTURAL
+       DESC 'FAI hook storage'
+       MUST ( FAIscript $ FAItask ) )
+
+# Name       : FAIscript
+# Description: Container for scripts
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.9 NAME 'FAIscript'
+       SUP FAIclass STRUCTURAL
+       DESC 'FAI script storage'
+       MUST ( FAIscript $ FAIpriority ) )
+
+# Name       : FAIscriptEntry
+# Description: Hooks and scripts are somewhat similar.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.10 NAME 'FAIscriptEntry'
+       SUP FAIclass STRUCTURAL
+       DESC 'FAI script storage'
+       MUST ( FAIscript $ FAIpriority ) )
+
+# Name       : FAIvariable
+# Description: Store a set of variables in this container.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.11 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.12 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.13 NAME 'FAIpackageList'
+       SUP FAIclass STRUCTURAL
+       DESC 'Stores complete package lists'
+       MUST ( FAIpackage ) MAY ( FAIpackagelistDependency $ FAIinstallFlag ) )
+
+# Name       : FAItemplate
+# Description: Container for template objects.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.14 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.15 NAME 'FAItemplateEntry'
+       SUP FAItemplate STRUCTURAL
+       DESC 'Stores real file templates'
+       MUST ( FAItemplateFile $ FAItemplatePath ) )
+       
+# Name       : FAIdebconfInfo
+# Description: Stores debconf information like shown in
+#              debconf-getselections.
+objectclass (1.3.6.1.4.1.10098.1.2.1.40.16 NAME 'FAIdebconfInfo'
+       SUP FAIclass STRUCTURAL
+       DESC 'Stores debconf informations for single packages'
+       MUST ( 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.17 NAME 'FAIobject'
+       SUP top AUXILIARY
+       DESC 'Marks an object as an FAI object.'
+       MUST ( FAIclass $ macAddress ) MAY ( FAIstatus ) )
+
+### END of FAI schema file