ITDS : modifier le schéma en live

Par défaut, le schéma de données de ITDS (IBM Tivoli Directory Server) est chargé au démarrage, à partir du fichier V3.modifiedschema, présent dans le répertoire /etc de l'instance d'annuaire.

Par exemple, pour une instance nommé idsldap, le fichier sera dans le répertoire /product/ldap/idsslapd-idsldap/etc.

Si on veut ajouter un attribut ou une classe d'objet à notre schéma, il est évidemment possible d'arrêter le serveur, modifier le fichier V3.modifiedschema, puis redémarrer ITDS.

Mais on peut aussi vouloir faire une mise à jour sans arrêter le service, en passant par la commande ldapmodify et un fichier ldif.

Par exemple, si on veut ajouter un attribut "customPostLink' et une classe d'objet 'customBlogPost', on pourra utiliser un fichier ldif customBlog.ldif :

dn: cn=schema
changetype: modify
add: attributetypes
attributetypes: (
  1.3.6.1.4.1.16832.123.7.10
  NAME 'customPostLink'
  DESC 'Link to blog post'
  SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
  USAGE userApplications
  )

dn: cn=schema
changetype: modify
add: objectclasses
objectclasses: (
  1.3.6.1.4.1.16832.123.8.10
  NAME 'customBlogPost'
  DESC 'A custom Blog post'
  SUP top
  STRUCTURAL
  MUST ( title $ description $ uid )
  MAY ( customPostLink)
  )

Puis pour modifier le schéma, utiliser ldapmodify :

/opt/ibm/ldap/V6.2/bin/ldapmodify -D cn=root -w secret -f customBlog.ldif

On peut ensuite vérifier que la modification est bien prise en compte :

grep custom V3.modifiedschema
( 1.3.6.1.4.1.16832.123.8.10 NAME 'customBlogPost' DESC 'A custom Blog post' SUP top STRUCTURAL MUST ( description $ title $ uid ) MAY customPostLink )
( 1.3.6.1.4.1.16832.123.7.10 NAME 'customPostLink' DESC 'Link to blog post' SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )

On peut de la même manière modifier la définition d'un attribut ou d'une classe d'objet. Mais dans ce cas, il convient de s'assurer que les modifications n'ont pas d'impact sur les objets déjà existants.

Catégorie