Archives pour octobre, 2009

Roundcube : plugin de gestion des vacations

Voici la nouvelle version de mon plugin de gestion des répondeurs pour RoundCube version 0.3. Elle s’appuie à présent sur l’API plugin de RoundCube, ce qui permet une installation en moins de cinq minutes. Au niveau des nouveautés, les drivers de stockage permettent une configuration sur mesure. Sont fournis le driver SQL et le driver LDAP qui couvrent entre autres l’utilisation de PostfixAdmin et Gnarwl. Si cela ne suffit pas, à vous de coder votre driver !

plugin_vacation

plugin-vacation-0.3-20091008.tar.gz

ChangeLog :
– support de l’API plugin RC.
– driver de stockage : SQL, LDAP.
– support des messages au format HTML.

NetBSD : configuration RAID1 avec RAIDframe

Je vais vous guider dans la configuration d’un RAID1 logiciel avec RAIDFrame sous NetBSD. Cette procédure fonctionne également sous OpenBSD (votre noyau devant intégrer le support RAIDframe) ou encore FreeBSD 4/5. Le RAID peut être créé à chaud sans LiveCD et à distance, mais il est recommandé d’avoir un accès au BIOS setup. Si vous ne faites pas d’erreur de calcul ou de frappe, tout se passera bien sinon pensez d’emblée à faire une backup !

La procédure consiste à créer le RAID1 initialement sur le second disque, à y recopier le système et les données « live » du premier disque. Suite à cela, un redémarrage activera le RAID du second disque, auquel le premier disque sera ajouté.

Etape 1 : installation du système

Je débute par l’installation d’un système NetBSD 5.0.1/amd64. Le système est installé sur le premier disque dur SCSI (/dev/sd0) d’une capacité de 8 Go (l’exemple est ici réalisé sous VMware), dont l’ensemble est affecté au slice de NetBSD (partition DOS 0). Au niveau des partitions BSD, je crée le strict minimum par souci de simplification du présent guide : /, swap et  /home.

netbsd# grep sd0 dmesg.boot
sd0 at scsibus0 target 0 lun 0: <VMware,, VMware Virtual S, 1.0>
 disk fixed
sd0: 8192 MB, 1044 cyl, 255 head, 63 sec, 512 bytes/sect x 16777216
 sectors
netbsd# grep sd1 dmesg.boot
sd1 at scsibus0 target 1 lun 0: <VMware,, VMware Virtual S, 1.0>
 disk fixed
sd1: 8192 MB, 1044 cyl, 255 head, 63 sec, 512 bytes/sect x 16777216
 sectors

netbsd# fdisk /dev/sd0
Partition table:
0: NetBSD (sysid 169)
 start 63, size 16777153 (8192 MB, Cyls 0-1044/85/1), Active

netbsd# disklabel -r sd0
# /dev/rsd0d:
total sectors: 16777216

16 partitions:
#        size    offset     fstype [fsize bsize cpg/sgs]
 a:   8401995        63     4.2BSD   2048 16384     0
 b:    273105   8402058       swap
 c:  16777153        63     unused      0     0
 d:  16777216         0     unused      0     0
 e:   8102053   8675163     4.2BSD   2048 16384     0

La partition d est reservée et correspond au disque dur (la taille de 16777153 correspond bien à la taille du slice NetBSD). La partition c est aussi réservée et correspond au slice NetBSD, englobant toutes les partitions définies par l’utilisateur : a (point de montage /), b (swap) et e (/home). Comme j’utilise tout l’espace disque, la taille de c correspond à celle du disque moins les 63 blocs réservés par l’ID de slice. Ceci se matérialise au niveau de l’offset de c par rapport à d et également de a, qui débute fatalement au  63ème bloc.

A retenir :

  • total sectors = size d
  • size c = size d – 63
  • offset c = offset a = 63

Etape 2 : partitionnement du 2ème disque dur (/dev/sd1)

Le slice NetBSD doit être reproduit à l’identique sur le second disque. Si  les disques ont des tailles différentes, il faut jouer avec fdisk pour créer un slice de la taille de celui du premier disque. Parfois, il est utile d’effacer la table des slices, si le disque a déjà été partitionné :

netbsd# dd if=/dev/zero of=/dev/rsd1d bs=8k count=1

netbsd# fdisk -0ua /dev/rsd1d
Partition table:
0: NetBSD (sysid 169)
 start 63, size 16777153 (8192 MB, Cyls 0-1044/85/1), Active
 PBR is not bootable: All bytes are identical (0x00)

Au niveau des partitions, c’est différent : une unique partition dédiée au RAID est créée. Cette partition va devenir le pseudo-périphérique disque RAID. C’est sur celui-ci que nos partitions /, swap et /home seront créées. RAIDframe impose cette limitation de ne fonctionner que sur une seule partition par disque.

Sur /dev/sd1, on édite la table des partitions et on créé la partition a avec comme type RAID, de taille égale à l’espace disque total moins les 63 blocs d’identification. Pour faire simple, il suffit de dupliquer la ligne de la partition c pour le slice a et y changer le type.

netbsd# disklabel -r -e -I sd1
total sectors: 16777216

4 partitions:
#        size    offset%C

Exim : nettoyage de la mail queue

Quelques commandes utiles pour nettoyer la mail queue d’un serveur de messagerie Exim.

  • Obtenir le nombre de messages d’un expéditeur :
# exiqgrep -f '<user@domain.xyz>' -c

Cette commande permet de valider l’expression régulière acceptée par les options -f et -s.

  • Supprimer tous les messages de l’expéditeur spécifié :
# exiqgrep -f '<user@domain.xyz>' -i | xargs exim -Mrm
  • Supprimer tous les messages d’un destinataire spécifié :
# exiqgrep -s '<user@domain.xyz>' -i | xargs exim -Mrm
  • Supprimer tous les messages vieux de plus de 2 heures (durée en secondes) :
# exiqgrep -o 7200 -i | xargs exim -Mrm
  • Supprimer tous les messages gelés :
# exiqgrep -z -i | xargs exim -Mrm

OpenLDAP : reconstruction d'une base suite à une mise à jour

En cas de mise à jour d’une version majeure d’OpenLDAP, voici la procédure à respecter pour reconstruire votre base LDAP.

Etape 1 : export de votre base LDAP :

# /etc/init.d/slurpd stop
# /etc/init.d/slapd stop
# slapcat -l /root/ldapdump.raw
# egrep -v '^entryCSN:' < /root/ldapdump.raw > /root/ldapdump
# mv /var/lib/openldap-data/ /root/openldap-data-backup/

Etape 2 : mise à jour et configuration de la nouvelle version d’OpenLDAP.

Etape 3 : import du dump :

# slapadd -l /root/ldapdump
# chown <ldap_user>:<ldap_user> /var/lib/openldap-data/*
# /etc/init.d/slapd start

Mac OS X : forcer le boot noyau 64 bits de Snow Leopard

Pour activer et démarrer définitivement sous le noyau 64 bits de Snow Leopard, la commande à exécuter est la suivante :

$ sudo nvram boot-args="arch=x86_64"

Votre machine doit évidemment supporter le 64 bits (noyau + EFI64 + CPU), mais aussi vos drivers qui doivent être 64 bits (ce qui n’est pas le cas de tous les constructeurs actuellement…). Si tout se passe bien un uname -a doit vous indiquer le mode x86_64.

Pour basculer sur le noyau 32 bits par défaut, la commande suivante sera nécessaire :

$ sudo nvram boot-args=""

VMWare Fusion 2 : activer l’accès console VNC

Sous Windows et Linux, VMWare 6 intègre un serveur VNC et permet un accès console VNC aux machines virtuelles. Toutefois sur Mac, VMWare Fusion ne propose pas cette option dans l’interface graphique de configuration. Cela demeure possible, en l’activant manuellement :

– fermer VMWare Fusion.
– placez-vous dans le répertoire de stockage de vos VM (fichiers  .vmwarevm).
– cliquez droit sur votre VM et sélectionnez « Afficher le contenu du paquet ».
– ouvrez le fichier à l’extension .vmx avec un éditeur de texte.
– ajoutez-y les lignes suivantes :

RemoteDisplay.vnc.enabled = "TRUE"
RemoteDisplay.vnc.port = "5901"
RemoteDisplay.vnc.password = "mot_de_passe"

Les options sont explicites, assurez-vous que le port d’écoute soit disponible.

Pour finir, lancez la VM et votre client VNC sur vnc://127.0.0.1:5901. Pour ce qui est de l’accès distant, SSH restera comme toujours votre ami.

Remarque : deux options en plus pour faciliter l’accès au BIOS setup :

bios.forceSetupOnce = "TRUE"
bios.bootDelay = "1500"

La première option ne marche que pour le boot suivant (le flag est désactivé ensuite). BootDelay est alors utile pour augmenter le délai en millisecondes de bascule par Fn + F2.

Haut de page