La traduction de cet article est le résultat du travail effectué par un logiciel de traduction, relu et corrigé par un humain. Elle vous est fournie, pour votre confort, telle quelle. Sun ne fournit aucune garantie et n'assume aucune responsabilité quant à la justesse et/ou la complétude du texte traduit ou de la page entière. Veuillez vous référer aux condition d'utilisation de ce site pour toute question regardant son utilisation et celle de ce logiciel.
Les scripts Perl offrent une installation et une configuration rapide et précise du service d'annuaire de Sun Java System
Sun Java System Directory Server Enterprise Edition 6.2 (et désormais, Directory Server) comporte une interface de ligne de commande(CLI) renforcée. Cet article vous indique comment automatiser l'installation et le processus de configuration de Directory Server avec la CLI et un script Perl, plus rapidement, plus facilement et en évitant les erreurs.
Remarque : La configuration décrite dans cet article ne constitue qu'un exemple. Son architecture, qui fait appel à cinq instances de Directory Server et cinq suffixes par serveur, ne correspond pas nécessairement à votre déploiement.
Supposons que vous devez déployer cinq instances de Directory Server dans le cadre d'une réplication multimaître intégralement maillée (MMR). Supposons que chaque instance contienne cinq suffixes. Vous devez en plus :
Paramétrer les propriétés pertinentes, telles que compatibilité des mots de passe, propriétés de connexion et index pour chaque instance de serveur.
Charger 1 000 utilisateurs test avec un script simple.
Effectuer chacune des tâches, sur la console d'administration ou sur la CLI, est une opération longue susceptible de prendre plusieurs jours.
La méthode Perl
Cette tâche peut être menée à bien avec efficacité en exécutant ce script Perl. Il accomplit l'ensemble des tâches suivantes, configure et déploie Directory Server :
Création de cinq instances de Directory Server.
Enregistrement de chaque instance dans le Centre de contrôle du service d'annuaire (DSCC).
Ajout d'un schéma personnalisé à chaque instance du serveur.
Création de cinq suffixes par serveur.
Activation de la réplication sur chaque suffixe.
Création d'index personnalisés.
Création d'une ACI permettant aux utilisateurs de modifier leurs objets mais pas leurs mots de passe.
Création des contrats de réplication parmi les cinq suffixes des cinq instances.
Initialisation de la réplication.
Importation des données utilisateur.
Un test a démontré que sur un serveur SunFire V240 sous SE Solaris 10 configuré avec 8 Go de mémoire et deux processeurs, les cinq instances de Directory Server ont été configurées conformément aux conditions susmentionnées en moins de 24 minutes. Voici le journal généré par le script.
Nous avons également effectué le test sur un MacBook Pro exécutant une version antérieure de la nouvelle version du SE Solaris sur une machine virtuelle. Le script a été exécuté en 31 minutes seulement.
La Figure 1 illustre un exemple de six instances de serveur en MMR intégralement maillée.
Figure 1 : six instances de Directory Server en MMR intégralement maillée (Cliquez sur l'image pour agrandir la vue.)
Lisez la suite pour des informations relatives aux conditions préalables, aux éditions nécessaires et à la syntaxe du script.
Conditions préalables
Commencez par :
Installer la version ZIP de Directory Server.
Cet article suppose que vous avez installé Directory Server dans /var/opt/dsee de sorte que
dsadm et dsconf résident dans /var/opt/dsee/ds6/bin.
dsccreg réside dans /var/opt/dsee/dscc6/bin.
Créer et installer l'interface de navigation DSCC et vérifier qu'elle est exécutée.
Installer Common Agent Container (CACAO) et vérifier qu'il est exécuté.
Editions pour Perl Script
Editez ensuite le script Perl :
Le script suppose l'installation ZIP de Directory Server ; par conséquent, en fonction de l'emplacement d'installation de Directory Server, éditez les variables d'environnement ldapbase et dsccbase en conséquence :
# Location of Directory Server commands
my $ldapbase = "/var/opt/dsee/ds6/bin/";
# Location of DSCC commands
my $dsccbase = "/var/opt/dsee/dscc6/bin/";
Editez la variable confpath pour spécifier le chemin d'accès aux fichiers de configuration :
# Path for configuration data
my $confpath = "/export/home/script/";
Editez la variable numsuffix pour spécifier le nombre de suffixes à configurer sur Directory Server :
# Number of suffixes
# This is the number of suffixes stored in the two-dimensional array below.
# This example contains five suffixes, which translate to four columns since arrays begin
at column 0, not 1.
my $numsuffix;
$numsuffix = 5;
Editez les informations d'identification de Directory Server :
Remarque : le fichier qui contient le mot de passe a pour préfixe le chemin d'accès créé à l'étape 2 ci-dessus.
### Directory Server credentials
# Directory Server manager login name
my $dm="";
$dm = '"cn=directory manager"';
# File that contains the Directory Server manager password
my $dmpassfile="";
$dmpassfile = $confpath."dman.txt";
Editez la variable instdir pour spécifier l'emplacement des instances de Directory Server, c'est-à-dire le répertoire dans lequel les instances de Directory Server résideront :
# Location of instances
my $instdir = "/var/opt/dsee6/instances/";
Editez les fichiers qui contiennent le schéma personnalisé et le fichier LDIF avec les données utilisateur à charger dans chacune des instances de Directory Server.
### LDIF files
# Custom schema added to each Directory Server instance
my $schema="";
$schema=$confpath."customschema.ldif";
# LDIF file with user data to be imported into each Directory Server instance
my $users="";
$users="users.ldif";
Editez trois baies :
Une baie uni dimensionnelle avec les noms d'instances de Directory Server tels qu'ils figurent dans le système de fichier
Une baie uni dimensionnelle avec le numéro unique de chacun des suffixes de la topologie de réplication
Une baie bidimensionnelle avec les noms de chacun des suffixes et des ports sécurisés et non sécurisés de chaque instance
# One-dimensional array of the Directory Server instances
my @instances = ("ins1" ,"ins2", "ins3", "ins4","ins5");
# One-dimensional array of the replica IDs to ensure a unique replica ID for each suffix
my @replicaIDs = (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25);
# Two-dimensional array of the suffixes and related data
# Each column contains unique values for a suffix
# Row 0 - suffix name
# Row 1 - LDAP port
# Row 2 - LDAPS port
my @ldapdata =
(["dc=example,dc=com","ou=usa,dc=example,dc=com","ou=eu,dc=example,dc=com","ou=aipac,dc
=example,dc=com","ou=americas,dc=example,dc=com"],
[11389,2389,3389,4389,5389],
[11636,2636,3636,4636,5636],);
Autres éditions
Enfin, éditez le corps du script en fonction des configurations réelles (étapes 1 à 13 selon "la méthode Perl") selon les besoins de votre déploiement.
Syntaxe du script
Voici la syntaxe du script :
#perl ds6deplconf.plnom d'hôte
où nom d'hôteest le nom abrégé (pas le nom entièrement qualifié), de l'hôte sur lequel vous exécutez, déployez et configurez Directory Server. En voici un exemple :
#perl ds6deplconf.pl solaris-devx
Pour supprimer les instances de Directory Server, exécutez simplement cleanup.sh puis exécutez à nouveau le script Perl pour redéployer.
Conclusion
L'exécution de scripts Perl pour l'automatisation, comme le suggère cet article, constitue une méthode efficace pour éliminer les tâches manuelles répétitives et garantir exactitude et uniformité. Essayez.
Références
Sun Java System Directory Server Enterprise Edition