• Aucun résultat trouvé

Outils Logiciels Libres

N/A
N/A
Protected

Academic year: 2022

Partager "Outils Logiciels Libres"

Copied!
32
0
0

Texte intégral

(1)

LP ASRALL

Outils Logiciels Libres

LDAP, CMS et Haute Disponibilit´ ee

Auteurs :

R´ emi Jachniewicz , Julien Lacava , Gatien Gaspard , Romain Gegout , Benoit Henryon

21 mars 2009

(2)

Table des mati` eres

I. LDAP 4

1. Installation du serveur openLDAP 5

2. Inspection des sch´emas 5

3. Configuration du serveur 5

4. Cr´eation du DIT 5

5. D´emarrage du serveur 6

6. Insertion des donn´ees dans l’annuaire 6

7. Recherche d’informations 6

7.1. afficher les valeurs de tous les attributs de tous les ´etudiants et de tous les profs 6 7.2. afficher les noms des attributs cn , description et telephoneNumber des ´etudiants

de NANCY . . . 7 7.3. afficher les valeurs de l’attribut mail des ´etudiants qui ont un title . . . 11 7.4. afficher les valeurs de tous les attributs des ´etudiants dont le sn commence par

la lettre M et qui n’ont pas de title . . . 12 7.5. afficher les valeurs de tous les attributs op´erationnels et non op´erationnels de

tous les ´etudiants . . . 13 7.6. afficher les membres du Groupe 2 . . . 13 7.7. afficher les valeurs des attributs cn des Administrateurs . . . 13 7.8. afficher les informations relatives `a l’annuaire en interrogeant l’objet rootDSE 13 7.9. afficher les informations relatives aux sch´emas utilis´es par l’annuaire en inter-

rogeant l’objet subschemaSubEntry . . . 13 7.10. Lister tout les ´etudiants (via navigateur) . . . 13 7.11. lister les mails des ´etudiants qui ont un title (via navigateur) . . . 13 7.12. lister les attributs des ´etudiants dont le nom commence par M (via navigateur) 13 7.13. Lister tous les ´etudiants (avec phpldapadmin) . . . 14 7.14. liste des ´etudiants dont le nom commence par ’M’(avec phpldapadmin) . . . . 14 7.15. liste des ´etudiants du group ASRALL2 (avec phpldapadmin) . . . 14 7.16. recherche les mails des ´etudiants qui ont le titre Monsieur au format ldif . . . 14 7.17. Refaire une recherche en testant le param`etre –z de ldapsearch (limitez `a 12

entr´ees maximales). . . 14

8. Journalisation 16

9. Modifications de donn´ees existantes 17

10.Mise en place du partitionnement 18

(3)

11.Mise en place de la r´eplication 18

12.Mise en place des ACL 18

II. Drupal 19

13.Guide d’installation : 19

14.Guide d’administration : 19

14.1. Configurer LDAP . . . 19

14.2. Gestion des groupes LDAP . . . 20

14.3. Ajout de modules `a Drupal . . . 20

14.4. Prise en main . . . 20

15. ´Evaluation des fonctionnalit´es : 20 15.1. Gestion du Versionning . . . 21

III. Haute Disponibilit´ e 22

16.LVS 23

17.Heartbeat 24

18.Zabbix 25

19.Mon 28

20.Mysql 29

21.Monitoring 31

(4)

Premi` ere partie .

LDAP

(5)

1. Installation du serveur openLDAP

Voici les options telles que configur´ee lors de l’installation : sudo apt-get install slapd ldap-utils

mot de passe admin : admin sudo dpkg-reconfigure ommetre config -> non

nom de domaine ->asrall.com nom organisation ->asrallSSH mot de passe admin -> admin module de base de donnees -> hdb supprimer bdd

autoriser ldapv2

2. Inspection des sch´ emas

Les classes filles de personnes sont : organizationalperson et residentialperson Mettre le tableau ici

Les classes h´eritent des attributs parents obligatoires, c’est pourquoi par exemple l’attribut sn ou encore cn n’est pas red´eclar´e dans les autres classes.

3. Configuration du serveur

Cr´eation d’un utilisateur : sudo slappasswd -h MD5

// R´ecup´eration du hash MD5 placer le r´esultat dans le fichier /etc/ldap/slapd.conf : rootdn ”cn=manager,dc=asrall,dc=com”

rootpw SSHAyCcwfMW2zG5iCiTEh8ZogGWtkf0qpPxr

4. Cr´ eation du DIT

(6)

Fichier dit.ldif :

On cr´ee un DIT avec : sudo slapadd -l ./dit.ldif On v´erifie :

sudo slapcat

5. D´ emarrage du serveur

D´emarrer le serveur en for¸cant un niveau de debug de 5 et en gardant les options par d´efaut (ne lancez pas le serveur en tˆache de fond en ajoutant un & `a la fin de la ligne de commande pour pouvoir voir ce qu’il retournera)

Il existe 14 loglevel possibles (cumulables entre eux) (voir page 2 Tutoriel) Pour choisir le loglevel il y a 2 possibilit´es :

-´editer ’loglevel’ dans slapd.conf

-soit en ligne de commandes au lancement de ldap sudo /usr/sbin/slapd -d 5 // 5 pour loglevel 5

V´erifier que le process id du demon slapd est bien contenu dans le fichier pidfile en fai- sant un cat du fichier pidfile.

Le fichier pidfile = /var/run/slapd/slapd.pid cat slapd.pid -> 5744

Le fichier pidfile = /var/run/slapd/slapd.args cat slapd.args -> /usr/sbin/slapd -d 5 start

6. Insertion des donn´ ees dans l’annuaire

ldapadd -f asrall.ldif -x -W -D ”cn=manager,dc=asrall,dc=com” ldapadd -f etudiant.ldif in- sertion de donn´ees via phpldapadmin : installation : sudo apt-get install phpldapadmin modifi-

cation de /etc/php5/apache2/php.ini : memory limit = 50M acces a l’interface : http ://adresse serveur/phpldapadmin test

7. Recherche d’informations

7.1. afficher les valeurs de tous les attributs de tous les ´ etudiants et de tous les profs

ldapsearch -x -b ”ou=Profs,ou=NANCY,dc=asrall,dc=com” -s sub *

# extended LDIF

(7)

#

# LDAPv3

# base <ou=Profs,ou=NANCY,dc=asrall,dc=com> with scope subtree

# filter: (objectclass=*)

# requesting: Desktop mod

#

# Profs, NANCY, asrall.com

dn: ou=Profs,ou=NANCY,dc=asrall,dc=com

# p.dosch, Profs, NANCY, asrall.com

dn: cn=p.dosch,ou=Profs,ou=NANCY,dc=asrall,dc=com

# b.mangeol, Profs, NANCY, asrall.com

dn: cn=b.mangeol,ou=Profs,ou=NANCY,dc=asrall,dc=com

# e.nataf, Profs, NANCY, asrall.com

dn: cn=e.nataf,ou=Profs,ou=NANCY,dc=asrall,dc=com

# d.maringer, Profs, NANCY, asrall.com

dn: cn=d.maringer,ou=Profs,ou=NANCY,dc=asrall,dc=com

# j.longchamp, Profs, NANCY, asrall.com

dn: cn=j.longchamp,ou=Profs,ou=NANCY,dc=asrall,dc=com

# m.simon, Profs, NANCY, asrall.com

dn: cn=m.simon,ou=Profs,ou=NANCY,dc=asrall,dc=com

7.2. afficher les noms des attributs cn , description et telephoneNumber des ´ etudiants de NANCY

ldapsearch -x -b ”ou=Etudiants,ou=NANCY,dc=asrall,dc=com” -s one cn description te- lephoneNumber

# extended LDIF

#

# LDAPv3

# base <ou=Etudiants,ou=NANCY,dc=asrall,dc=com> with scope oneLevel

# filter: (objectclass=*)

# requesting: cn description telephoneNumber

#

# g.gaspard, Etudiants, NANCY, asrall.com

dn: cn=g.gaspard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: g.gaspard

description: Gatien Gaspard

(8)

telephoneNumber: 0000000000

# j.lacava, Etudiants, NANCY, asrall.com

dn: cn=j.lacava,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: j.lacava

description: Julien Lacava telephoneNumber: 0000000000

# d.rard, Etudiants, NANCY, asrall.com

dn: cn=d.rard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: d.rard

description: David Rard telephoneNumber: 0000000000

# f.chassagne, Etudiants, NANCY, asrall.com

dn: cn=f.chassagne,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: f.chassagne

description: Felix Chassagne telephoneNumber: 0000000000

# j.leemans, Etudiants, NANCY, asrall.com

dn: cn=j.leemans,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: j.leemans

description: Jerome Leemans telephoneNumber: 0000000000

# l.dominguez, Etudiants, NANCY, asrall.com

dn: cn=l.dominguez,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: l.dominguez

description: Luis Dominguez telephoneNumber: 0000000000

# r.gegout, Etudiants, NANCY, asrall.com

dn: cn=r.gegout,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: r.gegout

description: Romain Gegout telephoneNumber: 0000000000

# s.jean, Etudiants, NANCY, asrall.com

dn: cn=s.jean,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: s.jean

description: Sebastien Jean telephoneNumber: 0000000000

# f.lambert, Etudiants, NANCY, asrall.com

(9)

dn: cn=f.lambert,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: f.lambert

description: Florian Lambert telephoneNumber: 0000000000

# g.lambert, Etudiants, NANCY, asrall.com

dn: cn=g.lambert,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: g.lambert

description: Gael Lambert telephoneNumber: 0000000000

# l.lemal, Etudiants, NANCY, asrall.com

dn: cn=l.lemal,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: l.lemal

description: Ludovic Lemal telephoneNumber: 0000000000

# r.dervin, Etudiants, NANCY, asrall.com

dn: cn=r.dervin,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: r.dervin

description: Romain Dervin telephoneNumber: 0000000000

# y.baris, Etudiants, NANCY, asrall.com

dn: cn=y.baris,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: y.baris

description: Yusuf Baris telephoneNumber: 0000000000

# s.lecaille, Etudiants, NANCY, asrall.com

dn: cn=s.lecaille,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: s.lecaille

description: Simon Lecaille telephoneNumber: 0000000000

# j.nogre, Etudiants, NANCY, asrall.com

dn: cn=j.nogre,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: j.nogre

description: Joel Nogre telephoneNumber: 0000000000

# q.hourlier, Etudiants, NANCY, asrall.com

dn: cn=q.hourlier,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: q.hourlier

description: Quentin Hourlier

(10)

telephoneNumber: 0000000000

# a.bailly, Etudiants, NANCY, asrall.com

dn: cn=a.bailly,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: a.bailly

description: Alexandre Bailly telephoneNumber: 0000000000

# c.mathieu, Etudiants, NANCY, asrall.com

dn: cn=c.mathieu,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: c.mathieu

description: Cedric Mathieu telephoneNumber: 0000000000

# h.meloni, Etudiants, NANCY, asrall.com

dn: cn=h.meloni,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: h.meloni

description: Hugo Meloni telephoneNumber: 0000000000

# j.fritz, Etudiants, NANCY, asrall.com

dn: cn=j.fritz,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: j.fritz

description: Jean Fritz telephoneNumber: 0000000000

# y.ilhan, Etudiants, NANCY, asrall.com

dn: cn=y.ilhan,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: y.ilhan

description: Yilmaz Ilhan telephoneNumber: 0000000000

# b.seclier, Etudiants, NANCY, asrall.com

dn: cn=b.seclier,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: b.seclier

description: Benjamin Seclier telephoneNumber: 0000000000

# v.meslard, Etudiants, NANCY, asrall.com

dn: cn=v.meslard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: v.meslard

description: Vincent Meslard telephoneNumber: 0000000000

# g.farinet, Etudiants, NANCY, asrall.com

(11)

dn: cn=g.farinet,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: g.farinet

description: Geoffry Farinet telephoneNumber: 0000000000

# r.jachniewicz, Etudiants, NANCY, asrall.com

dn: cn=r.jachniewicz,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: r.jachniewicz

description: Remi Jachniewicz telephoneNumber: 0000000000

# b.henryon, Etudiants, NANCY, asrall.com

dn: cn=b.henryon,ou=Etudiants,ou=NANCY,dc=asrall,dc=com cn: b.henryon

description: Benoit Henryon telephoneNumber: 0000000000

# search result search: 2

result: 0 Success

# numResponses: 27

# numEntries: 26

7.3. afficher les valeurs de l’attribut mail des ´ etudiants qui ont un title

ldapsearch -x -b ”ou=Etudiants,ou=NANCY,dc=asrall,dc=com” -s one title=”monsieur”

mail

# extended LDIF

#

# LDAPv3

# base <ou=Etudiants,ou=NANCY,dc=asrall,dc=com> with scope oneLevel

# filter: title=monsieur

# requesting: mail

#

# g.gaspard, Etudiants, NANCY, asrall.com

dn: cn=g.gaspard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: gatien.gaspard@etudiants-univ-nancy2.fr

# j.lacava, Etudiants, NANCY, asrall.com

dn: cn=j.lacava,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: julien.lacava@etudiants-univ-nancy2.fr

# d.rard, Etudiants, NANCY, asrall.com

(12)

dn: cn=d.rard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: david.rard@etudiants-univ-nancy2.fr

# f.chassagne, Etudiants, NANCY, asrall.com

dn: cn=f.chassagne,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: felix.chassagne@etudiants-univ-nancy2.fr

# j.leemans, Etudiants, NANCY, asrall.com

dn: cn=j.leemans,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: jerome.leemans@etudiants-univ-nancy2.fr

# l.dominguez, Etudiants, NANCY, asrall.com

dn: cn=l.dominguez,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: luis.dominguez@etudiants-univ-nancy2.fr

# search result search: 2

result: 0 Success

# numResponses: 7

# numEntries: 6

7.4. afficher les valeurs de tous les attributs des ´ etudiants dont le sn commence par la lettre M et qui n’ont pas de title

ldapsearch -x -b ”ou=Etudiants,ou=NANCY,dc=asrall,dc=com” -s one ’(&(sn=M*)( !(title=*)))’

*

# extended LDIF

#

# LDAPv3

# base <ou=Etudiants,ou=NANCY,dc=asrall,dc=com> with scope oneLevel

# filter: (\&(sn=M*)(!(title=*)))

# requesting: Desktop mod

#

# c.mathieu, Etudiants, NANCY, asrall.com

dn: cn=c.mathieu,ou=Etudiants,ou=NANCY,dc=asrall,dc=com

# h.meloni, Etudiants, NANCY, asrall.com

dn: cn=h.meloni,ou=Etudiants,ou=NANCY,dc=asrall,dc=com

# v.meslard, Etudiants, NANCY, asrall.com

dn: cn=v.meslard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com

# search result

(13)

search: 2

result: 0 Success

# numResponses: 4

# numEntries: 3

7.5. afficher les valeurs de tous les attributs op´ erationnels et non op´ erationnels de tous les ´ etudiants

7.6. afficher les membres du Groupe 2

ldapsearch -x -b ”ou=Group,ou=NANCY,dc=asrall,dc=com” -s one cn=ASRALL2

7.7. afficher les valeurs des attributs cn des Administrateurs

ldapsearch -x -b ”cn=ADMINISTRATEURS,ou=Groups,ou=NANCY,dc=asrall,dc=com”

-s one cn

7.8. afficher les informations relatives ` a l’annuaire en interrogeant l’objet rootDSE

7.9. afficher les informations relatives aux sch´ emas utilis´ es par l’annuaire en interrogeant l’objet subschemaSubEntry 7.10. Lister tout les ´ etudiants (via navigateur)

ldap ://192.168.10.11 :389/ou=Etudiants,ou=NANCY,dc=asrall,dc=com ?* ?sub ?(cn=*)

7.11. lister les mails des ´ etudiants qui ont un title (via navigateur)

ldap ://192.168.10.11 :389/ou=Etudiants,ou=NANCY,dc=asrall,dc=com ?mail ?sub ?(title=*)

7.12. lister les attributs des ´ etudiants dont le nom commence par M (via navigateur)

ldap ://192.168.10.11 :389/ou=Etudiants,ou=NANCY,dc=asrall,dc=com ?* ?sub ?(sn=M*)

(14)

7.13. Lister tous les ´ etudiants (avec phpldapadmin)

7.14. liste des ´ etudiants dont le nom commence par ’M’(avec phpldapadmin)

7.15. liste des ´ etudiants du group ASRALL2 (avec phpldapadmin) 7.16. recherche les mails des ´ etudiants qui ont le titre Monsieur au

format ldif

ldapsearch -LLL -x -b ”ou=Etudiants,ou=NANCY,dc=asrall,dc=com” -s one title=”monsieur”

mail

dn: cn=g.gaspard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: gatien.gaspard@etudiants-univ-nancy2.fr

dn: cn=j.lacava,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: julien.lacava@etudiants-univ-nancy2.fr

dn: cn=d.rard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: david.rard@etudiants-univ-nancy2.fr

dn: cn=f.chassagne,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: felix.chassagne@etudiants-univ-nancy2.fr

dn: cn=j.leemans,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: jerome.leemans@etudiants-univ-nancy2.fr

dn: cn=l.dominguez,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: luis.dominguez@etudiants-univ-nancy2.fr

7.17. Refaire une recherche en testant le param` etre –z de ldapsearch (limitez ` a 12 entr´ ees maximales).

Que retourne le serveur si jamais il y a plus de 12 entr´ees correspondant au filtre de recherche ? ldapsearch -z 10 -x -b ”ou=Etudiants,ou=NANCY,dc=asrall,dc=com” -s one title=”monsieur” mail

# extended LDIF

#

# LDAPv3

# base <ou=Etudiants,ou=NANCY,dc=asrall,dc=com> with scope oneLevel

# filter: title=monsieur

# requesting: mail

#

(15)

# g.gaspard, Etudiants, NANCY, asrall.com

dn: cn=g.gaspard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: gatien.gaspard@etudiants-univ-nancy2.fr

# j.lacava, Etudiants, NANCY, asrall.com

dn: cn=j.lacava,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: julien.lacava@etudiants-univ-nancy2.fr

# d.rard, Etudiants, NANCY, asrall.com

dn: cn=d.rard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: david.rard@etudiants-univ-nancy2.fr

# f.chassagne, Etudiants, NANCY, asrall.com

dn: cn=f.chassagne,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: felix.chassagne@etudiants-univ-nancy2.fr

# j.leemans, Etudiants, NANCY, asrall.com

dn: cn=j.leemans,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: jerome.leemans@etudiants-univ-nancy2.fr

# l.dominguez, Etudiants, NANCY, asrall.com

dn: cn=l.dominguez,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: luis.dominguez@etudiants-univ-nancy2.fr

# search result search: 2

result: 0 Success

# numResponses: 7

# numEntries: 6

dans le cas o`u on limite a une valeut inf´erieure au nombre r´eel de r´esultats : ldapsearch -z 3 -x -b ”ou=Etudiants,ou=NANCY,dc=asrall,dc=com” -s one title=”monsieur” mail

# extended LDIF

#

# LDAPv3

# base <ou=Etudiants,ou=NANCY,dc=asrall,dc=com> with scope oneLevel

# filter: title=monsieur

# requesting: mail

#

# g.gaspard, Etudiants, NANCY, asrall.com

dn: cn=g.gaspard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: gatien.gaspard@etudiants-univ-nancy2.fr

(16)

# j.lacava, Etudiants, NANCY, asrall.com

dn: cn=j.lacava,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: julien.lacava@etudiants-univ-nancy2.fr

# d.rard, Etudiants, NANCY, asrall.com

dn: cn=d.rard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: david.rard@etudiants-univ-nancy2.fr

# search result search: 2

result: 4 Size limit exceeded

# numResponses: 4

# numEntries: 3

\subsection{Refaire une recherche en testant le param`etre {S de ldapsearch. Comment sont affich´ees les r´esultats par rapport `a une recherche sans param`etre {S ?}

recherche les 3 premiers mails des ´etudiants et affiche par ordre alphab´etique

ldapsearch -S mail -z 3 -x -b "ou=Etudiants,ou=NANCY,dc=asrall,dc=com" -s one title="monsieur" mail

\begin{verbatim}

# extended LDIF

#

# LDAPv3

# base <ou=Etudiants,ou=NANCY,dc=asrall,dc=com> with scope oneLevel

# filter: title=monsieur

# requesting: mail

#

# d.rard, Etudiants, NANCY, asrall.com

dn: cn=d.rard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: david.rard@etudiants-univ-nancy2.fr

# g.gaspard, Etudiants, NANCY, asrall.com

dn: cn=g.gaspard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: gatien.gaspard@etudiants-univ-nancy2.fr

# j.lacava, Etudiants, NANCY, asrall.com

dn: cn=j.lacava,ou=Etudiants,ou=NANCY,dc=asrall,dc=com mail: julien.lacava@etudiants-univ-nancy2.fr

8. Journalisation

en debug 0 -¿ aucune info

en debug 32 (traitement des filtres de recherche) on obtient une info par r´esultat de re- cherche

(17)

begin get_filter PRESENT

end get_filter 0

=> bdb_filter_candidates AND

=> bdb_list_candidates 0xa0

=> bdb_filter_candidates PRESENT

<= bdb_filter_candidates: id=-1 first=1 last=51

<= bdb_list_candidates: id=-1 first=8 last=33

<= bdb_filter_candidates: id=-1 first=8 last=33

=> test_filter PRESENT

<= test_filter 6

=> test_filter PRESENT

<= test_filter 6

=> test_filter PRESENT

<= test_filter 6

=> test_filter PRESENT

<= test_filter 6

en debug 512(statistique sur les r´esultats renvoy´ees au client) slapd starting conn=0 op=1 ENTRY dn=”cn=g.gaspard,ou=etudiants,ou=nancy,dc=asrall,dc=com” conn=0 op=1 EN- TRY dn=”cn=j.lacava,ou=etudiants,ou=nancy,dc=asrall,dc=com” conn=0 op=1 ENTRY dn=”cn=d.rard,ou=etudiants,ou=nancy,dc=asrall,dc=com”

9. Modifications de donn´ ees existantes

9.1. Ajouter l’attribut departmentNumber ` a 4 ´ etudiants de NANCY de votre choix.

a) on cr´e un fichier texte modif1.txt : dn : cn=g.gaspard,ou=Etudiants,ou=NANCY,dc=asrall,dc=com changetype : modify add : departementNumber departementNumber : 57

dn : cn=j.lacava,ou=Etudiants,ou=NANCY,dc=asrall,dc=com changetype : modify add : departementNumber departementNumber : 57

dn : cn=r.gegout,ou=Etudiants,ou=NANCY,dc=asrall,dc=com changetype : modify add : departementNumber departementNumber : 54

dn : cn=y.baris,ou=Etudiants,ou=NANCY,dc=asrall,dc=com changetype : modify add : departementNumber departementNumber : 88

b) On lance l’int´egration de ce fichier : ldapmodify -x -D ”cn=manager,dc=asrall,dc=com”

-f modif1.txt -w managerpwd

(18)

9.2. Supprimer l’attribut description ` a 3 profs de TOULOUSE de votre choix

a) on cr´e le fichier : dn : cn=j.hallyday,ou=Profs,ou=TOULOUSE,dc=asrall,dc=com chan- getype : modify delete : telephoneNumber

b) on lance : ldapmodify -x -D ”cn=manager,dc=asrall,dc=com” -f modif2.txt -w mana- gerpwd

9.3. Modifier les attributs mail et telephoneNumber de 3 profs de votre choix

9.4. Supprimer les entr´ ees de 2 ´ etudiants de TOULOUSE et celle d’un prof de NANCY

9.5. D´ eplacer un ´ etudiant de TOULOUSE vers les profs de NANCY 9.6. Renommer une ´ etudiante en changeant son attribut cn en

conservant l’ancien cn (par exemple si elle a chang´ e de nom en se mariant et qu’elle veut quand mˆ eme voir apparaˆıtre son nom de jeune fille)

9.7. Supprimer un des ´ etudiants du groupe Utilisateurs

10. Mise en place du partitionnement

11. Mise en place de la r´ eplication

12. Mise en place des ACL

(19)

Deuxi` eme partie . Drupal

13. Guide d’installation :

T´el´echargement de drupal sur http://drupalfr.org/

Version intall´ee : Drupal6.9

Pr´erequis : php5, mysql, apache2, phpmyadmin, php5-gd

D´ecompresser l’archive contenant Drupal dans un r´epertoire accessible par Apache (/var/www/drupal par exemple).

Rendre www-data propri´etaire de l’ensemble du CMS (chown www-data :www-data -R /var/www/drupal).

Renommer le fichier /var/www/drupal/sites/defaults.settings.php en settings.php Rajouter les droits d’´ecriture `a ce fichier (chmod u+w settings.php).

Rajouter les droits d’´ecriture au r´epertoire /var/www/drupal/sites/defaults/files (chmod u+w -R files)

Cr´eer une base de donn´ees pour Drupal.

Ouvrir un navigateur `a l’adresse http ://ipduserveur/drupal/install.php Dans le navigateur :

Remplir les informations pour la cr´eation d’un utilisateur : Login : drupal

MDP : drupal54

Pr´eciser le nom de la base de donn´ees.

Sauvegarder

Enlever les droits d’´ecriture sur settings.php (chmod u-w settings.php)

14. Guide d’administration :

Suppression de l’authentification par mail lors de la cr´eation d’un compte : aller dans Administer -> UserManagement -> UserSettingset d´ecocher la case ”Require e-mail veri- fication”

Par defaut, il y a deux types deusers, anonyme et identifi´e.

Afin de donner des droits sp´ecifiques, il faut cr´eer des rˆoles que l’on pourra affecter aux utilisateurs voulus. Pour ce faire, il faut d´efinir les permissions d´esir´ees :

Administer -> UserManagement -> Roles

14.1. Configurer LDAP

Pour g´erer les utilisateurs depuis un serveur LDAP, il faut installer le module php5-ldap.

Pour l’int´egration de LDAP dans Drupal, il faut y installer le module ldap integration.

(20)

configuration de Ldap authentication :

Mixed mode. The LDAP authentication is performed only if Drupal authentication fails Di- sallow login and log the conflict

Add server :

Base DNs : dc=asrall,dc=com UserName attribute : cn Email attribute : mail

14.2. Gestion des groupes LDAP

Groups exist as LDAP entries where a multivalued attribute contains the members’ CNs

Nodes containing groups (one per line) :cn=ADMINISTRATEURS,ou=Groups,ou=NANCY,dc=asrall,dc=com Attribute holding group members : uniqueMember

14.3. Ajout de modules ` a Drupal

Copier coller le contenu d’une archive contenant le module dans le r´epertoire /var/www/drupal/modules (si celui-ci n’est pas disponible par d´efaut)

Aller sur administer->site building->modules et activer le module d´esir´e.

exemple : shoutcast :

extraction dans le dossier modules

activation via administer->site building->modules->shoutbox ajout du block aux pages :

administer->site building->blocks->shoutbox exemple : blog :

activation via administer->site building->modules->blog Ajout du support de la langue francaise :

r´ecup´eration de l’archive contenant le fran¸cais puis activation viaadminister->site configuration->languages.

14.4. Prise en main

Drupal s’av`ere extremement rapide et ais´e `a installer et `a mettre en oeuvre. L’ajout de fonctionnalit´e est ´egalement tr´es intuitif puisqu’il suffit d’ajouter le module dans le r´epertoire module de drupal et activer celui-ci via l’interface d’administration.

15. ´ Evaluation des fonctionnalit´ es :

L’authentification et la gestion des utilisateurs via LDAP s’av´ere relativement simple `a mettre en place. La traduction dans diverses langues ´egalement.

Quant `a l’´edition du contenu, Drupal dispose d’un ´editeur de texte tr`es sommaire, il est n´eanmoins possible d’installer un ´editeur Wysiwyg via un module compl´ementaire.

La connexion `a une base de donn´ees se fait naturellement lors de l’installation, drupal se charge de cr´eer ce qu’il a besoin.

(21)

15.1. Gestion du Versionning

Cr´eer du contenu. Modifier le contenu (en cochant la case Information sur les revisions –¿

cr´eer une revision). La liste des revisions est accessible via le menu ”revisions” sur les pages contenant plusieurs revisions.

(22)

Troisi` eme partie .

Haute Disponibilit´ e

(23)

16. LVS

Linux Virtual Server (LVS) est une solution avanc´ee de r´epartition de charge pour GNU/Linux.

C’est un logiciel libre commenc´e par Wensong Zhang en mai 1998. La mission de ce projet

´

etait de construire un serveur de haute performance pour Linux utilisant la technologie du clustering.

L’´equilibrage de type NAT via LVS que nous allons mettre en place s’appuie essentiellement sur ipvsadm qui est l’outil d’administration d’LVS mais aussi de Ldirectord qui va s’occuper de la configuration et la d´etection de serveurs web down.

Sur le/les ´equilibreur(s) :

Tout d’abord on installe Ldirectord :

sudo apt-get install ldirectord

Ensuite on cr´ee une interface virtuelle, qui sera utilis´ee par le client d´esirant visiter le site web :

sudo ifconfig eth0 :virt 192.168.2.110 Configuration de Ldirectord :

Les fichiers de configurations portent l’extension .cf et ont pour r´epertoire /etc/ha.d/.

Dans ce fichier il faut renseigner plusieurs ´el´ements : virtual=192.168.2.110:80

protocol=tcp scheduler=rr

real=192.168.10.91:90 masq 1 real=192.168.10.110:80 masq 1 request="test.html"

receive="200"

– Virtual renseigne sur l’adresse ip virtuelle qui sera acc´ed´ee par le client.

– Protocol permettant de d´efinir le type de protocole utilis´e, ici tcp car http est bas´e sur celui-ci.

– Schedulercorrespond a l’agorithme utilis´e pour l’´equilibrage, rr signifiant Round Robin.

real liste les serveurs constituant la pool avec l’adresse ip de chacuns d’eux, sont type de forward et le poid.Le type masq (pour masquerade) correspond au LVS de type NAT et le poid permet de d´efinir une priorit´e de l’aiguillage.

– Request d´efini le nom de la resource qui sera acced´ee pour v´erifier que les serveurs web sont toujours disponibles.

– Receive contient la valeur que devra contenir la resource pour ˆetre consid´er´e comme disponible.

Sur les serveurs web :

Il y a deux petits points `a mettre en place sur les serveurs :

La premi`ere consiste `a changer la passerelle actuelle par l’ip de l’´equilibreur :

(24)

/sbin/route add default gw 192.168.10.221

Ensuite il faut cr´eer `a la racine le fichier test.html et y mettre comme contenu ¡¡200¿¿.

Lancement : En mode d´ebug :

/usr/sbin/ldirectord -d /etc/ha.d/www.cf start En mode normal :

/etc/init.d/ldirectord start

17. Heartbeat

La haute disponibilit´e va ˆetre assur´ee par heartbeat, celui-ci doit ˆetre install´e sur chacun des ´equilibreurs. On installe heartbeat :

sudo apt-get install heartbeat

Configuration : Il y a 3 fichiers `a configurer pour qu’heartbeat fonctionne comme d´esir´e : /etc/ha.d/ha.cf :

bcast eth0 <= Interface utilis´ee pour le battement debugfile /var/log/ha-debug <= fichier de d´ebug

logfile /var/log/ha-log <= fichier de log logfacility local0 <= Log utilisant syslog-ng

keepalive 2 <= temps (en s) entre chaque battement

deadtime 10 <= temps au bout du quel on consid`ere une machine morte

warntime 6 <= on consid`ere que la machine met du temps `a r´epondre apr`es 6s initdead 60 <= temps avant de lancer le premier battement au d´emarrage udpport 694 <= port utilis´e pour l’envoi du battement

node equ1 <= d´eclaration des machines devant ^etre surveill´ees

node equ2

auto_failback on <= r´eintegre une machine qui repasse en ´etat de marche /etc/had.d/haresources :

equ1

| {z }

Ipaddr :: 192.168.10.221

| {z }

Node Ip virt `a attribuer /etc/ha.d/authkeys :

auth 1 <= on utilise la m´ethode d’authentification 1

1 sha1 CleSecrete <= Num´ero de m´ethode, Type de cryptage et cl´e Ensuite il ne nous reste plus qu’a lancer heartbeat sur les machines :

/etc/init.d/heartbeat start

(25)

18. Zabbix

Pr´erequis avant installation :

Il faut disposer d’un serveur Web g´erant le PHP avec une base de donn´ees MySql ou PostgreSQL.

Installation :

Il y a trois paquet `a installer :

– zabbix-server-mysql pour utiliser une base MySQL ou zabbix-server-pgsql pour utiliser une base PostGRES

– zabbix-frontend-php : l’interface PHP pour le serveur – zabbix-agent : pour pouvoir monitorer le serveur lui-mˆeme Dans php.ini, il faut changer quelques options :

L’option max execution time qui fixe le temps maximal d’ex´ecution d’un script, en secondes doit ˆetre mise `a 600 pour l’installation de zabbix.

Il y a aussi l’option date.timezone qui doit ˆetre renseigner pour pouvoir afficher un temps correct sur le frontend en php.

La configuration de l’agent est tr`es simple car il y a trois directives `a renseigner dans les fichiers zabbix agent.conf zabbi agentd.conf. Dans le premier il faut pr´eciser l’adresse du ser- veur ”Server=localhost”. Dans l’autre fichier, il faut renseigner deux champs. L’un pr´ecisant aussi l’adresse du serveur et l’autre indiquant le nom de machine qui sera utilis´e par le fron- tend : ”Server=127.0.0.1” et ”Hostname=ZabbixServ”.

Pour ajouter une machine :

Menu ”Configuration -> Hotes -> Cr´eer un h^ote”

Figure 1: Ajout d’une machine

Voici le menu pour ajouter une machine. Il faut pr´eciser son nom, son adresse IP, son statut,

(26)

et pour pouvoir monitorer des services, par exemples snmp, il faut lui ajouter le template snmp (il faut bien entendu que snmp soit installer sur cette machine).

Pour afficher l’occupation du disque par exemple :

Menu ”Configuration -> Graphiques -> Cr´eation de graphiques”

Figure 2: Ajout d’un graphique

Comme on le voit sur l’image, on peut selectionner diff´erents items pour la machine. Ici, on selectionne ”Free disk space on /”. On peut choisir la couleur afficher sur le graphique, le style de dessin affich´e ...

Pour voir par exemple qu’un serveur Web est tomb´e :

Menu ”Configuration -> Actions -> Cr´eer une action”

(27)

Figure 3: Ajout d’un graphique

Ici, on peut choisir diff´erent services `a monitorer. On clique sur le nom du service pour le monitorer. Dans le menu ”M´etriques -> Evennements”, on peut voir le status des services monitorer ainsi que les actions li´ees au changement de status de certains services.

Par exemple si on veut envoyer un mail `a l’administrateur quand le serveur web d’une machine tombe, il faut configurer zabbix de la mani`ere suivante :

Menu ”Administration -> Types Media -> Email” Donc dans l’onglet Administration / Media Type)

Figure 4: Configuration mail

SMTP server : l’adresse IP ou le nom DNS de ton serveur de mail (SMTP) exemple :

(28)

”smtp.free.fr” ici ”localhost”

SMTP helo : c’est la chaine qu’il va renvoyer au serveur pour s’identifier ; en g´en´eral ce n’est pas tr`es important ; par exemple ”zabbixserver” ici ”localhost”

SMTP email : Email avec laquelle les mails sont envoy´e (le ”From”) ; exemple ”zabbixser- ver@free.fr” ici julien@xionis.home

Ensuite, il faut associer un media ”Email” (une adresse Email de destination) `a l’utilisateur Zabbix qui va envoyer les mail. La configuration des emails `a envoyer se passe dans le menu

”"Configuration -> Actions” qui est d´ecrit au dessus.

Figure 5: Configuration mail

Ici on voit que si Apache tombe sur le serveur ldap, alors un mail sera envoy´e `a l’utilisateur Admin dont l’adresse a ´et´e pr´ecis´e dans le menu ”Administration -> Utilisateurs”.

19. Mon

Installation de mon via :

sudo apt-get install mon

Configuration pour surveillance du service http et envoi de mail en cons´equent : hostgroup local localhost equ1 <=d´efinition des h^otes

watch local <= surveillance du groupe local service http <= surveillance http

monitor http.monitor

interval 2m <= On v´erifire toutes les 2 min depend SELF::fping

period wd {Sun-Sat} <= p´eriode de v´erification

alert mail.alert remi@localhost <= envoi de mail en cas de soucis alertafter 10m <= alert apr`es n minutes

(29)

\begin{verbatim}

On recharge la configuration :

\begin{center}sudo /etc/init.d/mon reload\end{center}

En utilisant la command monshow on peut v´erifier l’´etat actuel des ´el´ements surveill´es:

\begin{verbatim}

GROUP SERVICE STATUS LAST NEXT ALERTS SUMMARY

D local http - 9s 0s none 127.0.0.1 equ1

Ici pas de soucis avec http. Maintenant arretons Apache : sudo /etc/init.d/apache2 stop

Apr`es quelques secondes en retestant monshow on s’aper¸coit qu’il y a un probl`eme (FAIL) : D local http FAIL 2s 0s none 127.0.0.1 equ1

Red´emarrage en cas d’Apache d´esactiv´e : En cas d’un apache qui venait `a tomber, il peut ˆ

etre interessant de tenter de relancer celui-ci avec mon. Pour cel`a nous allons cr´eer un script dans /etc/ha.d/mon/alert.d/ que nous nommeront Apache UpDown. Celui-ci contient :

20. Mysql

Configuration du maˆıte Il faut tout d’abord ´editer le fichier /etc/mysql/my.cnf. L’´etape consistant a activer l’´ecoute autre que sur localhost via :

#skip-networking

#bind-address = 127.0.0.1

Maintenant il est n´ecessaire d’indiquer `a MySQL pour quel base les logs seront ´ecrits (ces logs seront utilis´e par le serveur esclave afin de d´et´ecter des changements). On lui indique le chemin des log et nous sp´ecifions que le serveur jouera le rˆole de maˆıtre :

log-bin = /var/log/mysql/mysql-bin.log binlog-do-db=drupal

server-id=1

Ensuite on red´emarre Mysql :

/etc/init.d/mysql restart

Nous allons maintenant cr´eer un utilisateur avec les droits de r´eplications via mysql mysql -u root -p

On attibue les droits :

GRANT REPLICATION SLAVE ON *.* TO ’serv esclace’@’%’ IDENTIFIED BY

’¡motdepass¿’ ;FLUSH PRIVILEGES ;

(30)

Nous allons maintenant bloquer la table qui nous int´eresse : USE drupal;

FLUSH TABLES WITH READ LOCK;

SHOW MASTER STATUS;

Ce qui devrait nous afficher :

+---+---+---+---+

| File | Position | Binlog_do_db | Binlog_ignore_db | +---+---+---+---+

| mysql-bin.006 | 183 | drupal | |

+---+---+---+---+

1 row in set (0.00 sec)

Il est n´ecessaire de garder ces informations pour le serveur esclave.

On cr´ee maintenant un dump de la table :

mysqldump -u root -p –opt drupal ¿ drupal.sql Une fois le dump ´etabli nous pouvons d´ebloquer la base :

mysql -u root -p Enter password:

UNLOCK TABLES;

quit;

La configuration du maˆıtre est d´esormais termin´ee.

Configuration de l’esclave :

On cr´ee tout d’abord la base `a r´epliquer : mysql -u root -p

Enter password:

CREATE DATABASE drupal;

quit;

On importe ensuite la base pr´ecedement copi´ee :

mysql -u root -p drupal ¡ drupal.sql

Il faut maintenant indiquer `a Mysql qu’il sera l’esclave, que le maitre est 192.168.0.100 et que la base se nomme drupal. Pour cel`a on modifie le fichier /etc/mysql/my.cnf

server-id=2

master-host=192.168.0.100 master-user=esclave

master-password=motdepasse master-connect-retry=60 replicate-do-db=drupal

(31)

On r´edemarre Mysql :

/etc/init.d/mysql restart Ensuite on lance Mysql pour les derniers r´eglages :

mysql -u root -p On stoppe le mode esclave :

SLAVE STOP ;

CHANGE MASTER TO MASTER HOST=’192.168.0.100’, MASTER USER=’drupal’, MASTER PASSWORD=’motdepass’, MASTER LOG FILE=’mysql-bin.006’,

MASTER LOG POS=183 ;

– MASTER HOST is the IP address or hostname of the master (in this example it is 192.168.0.100).

– MASTER USER is the user we granted replication privileges on the master.

– MASTER PASSWORD is the password of MASTER USER on the master.

– MASTER LOG FILE is the file MySQL gave back when you ran SHOW MASTER STATUS ; on the master.

– MASTER LOG POS is the position MySQL gave back when you ran SHOW MASTER STATUS ; on the master.

On relance le mode esclave :

SLAVE START ;

On constate que la r´eplication est bien op´erationnelle (v´erification via phpmyadmin).

21. Monitoring

Feedback n’´etant plus maintenu nous avons d´ecid´e de tester une autre solution nous eprmet- tant de suivre le status du cluster. MRTG et RRDTOOL sont les leaders dans ce domaine.

N´eanmoins la mise en place/configuration n’est pas rapide. C’est pourquoi des outils plus sp´ecifiques doivent ˆetre utilis´es.

Apr`es plusieurs recherches Ganglia semble tout indiqu´es. Apr`es quelques tests il a ´et´e d´ecid´e de choisir Ganglia de part ses nombreux graphiques fournis mais aussi le d´etail des

´

evenements pas heure (sur munin on ne peut zoomer au d´el`a des jours).

Installation/Configuration

Ganglia se d´ecompose en deux parties, un serveur et un client. Le serveur est `a installer sur chaque machine `a surveiller au travers de la commande :

apt-get install gmetad

Puis il faut configurer divers ´el´ements dans le fichier /etc/gmetad.conf : Les serveurs `a questionner :

(32)

data source ”Mon Cluster” localhost 192.168.10.222 192.168.10.91 192.168.10.110 Le nom de la grid :

gridname ASRALL

Il est ensuite n´ecessaire d’installer un client qui va s’occuper de r´ecup´erer toutes les infor- mations sur les diff´erents serveurs :

apt-get install ganglia-monitor

On attribue le nom de la grid via le fichier de configuration /etc/gmond.conf :

Name ASRALL

Ganglia est packag´e par d´efaut mais ne contient pas le frontend web, pour cel`a il suffit de t´el´echarger le tar.gz sur le site officiel et copier le r´epertoire ¡¡web¿¿ `a l’emplacement du serveur web.

Références

Documents relatifs

22H : départ chez

Donner un exemple de deux matrices non semblables ayant le mˆ eme polynˆ ome ca- ract´ eristique.. Monrer que les valeurs propres de A sont 2

Sysmex a confirmé le risque potentiel de contamination par l’Emicizumab d'un échantillon à l'autre et a évalué l'impact de cette contamination sur les tests de coagulation

mapped to Group-Policy: value = CN=Group Policy Creator Owners,CN=Users,DC=rohan,DC=com mapped to LDAP-Class: value = CN=Group Policy Creator Owners,CN=Users,DC=rohan,DC=com

Il contient d’une part des données relatives aux demandes de visa introduites auprès des ambassades et des consulats de Belgique à l’étranger et au nombre total des

• Si les barres sont décomposées mettre le sexe à la première colonne, à la place d’Etudiants et le nombre correspondant dans les lignes

the cells from intact animals were treated in vitro with CN·Ly, indicated that the action of substances was augmented by some.

– S’approprier les outils et les utiliser dans le cadre de parcours de médiation et d’éducation artistique et culturelle en danse ;.. – Inventer ses propres outils de