From 1a422e5fd4a8cfbb9ff0d1b97b909015ceff500f Mon Sep 17 00:00:00 2001 From: cajus Date: Fri, 2 Sep 2005 07:18:57 +0000 Subject: [PATCH] Added fai schema file git-svn-id: https://oss.gonicus.de/repositories/gosa/trunk@1298 594d385d-05f5-0310-b6e9-bd551577e9d8 --- contrib/openldap/fai.schema | 461 ++++++++++++++++++++++++++++++++++++ 1 file changed, 461 insertions(+) create mode 100644 contrib/openldap/fai.schema diff --git a/contrib/openldap/fai.schema b/contrib/openldap/fai.schema new file mode 100644 index 000000000..725dc0a85 --- /dev/null +++ b/contrib/openldap/fai.schema @@ -0,0 +1,461 @@ +############################################################################### +# # +# F A I - Fully automatic installation LDAP schema file # +# # +#-----------------------------------------------------------------------------# +# Date: 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 +# 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 -- 2.30.2