Si comme moi vous avez tenté d’installer MongoDB sur un Kimsufi d’OVH tournant sous Debian et que vous obtenez le message suivant :

invoke-rc.d: initscript mongodb, action « start » failed.

Voici la procédure magique pour que tout tourne à nouveau.

Installation de MongoDB

Tout d’abord, MongoDB recommande une procédure d’installation particulière pour Debian. Il faut s’appuyer sur les dépot mongodb.org :

1
2
3
$ apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
$ echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
$ aptitude update

On pourra ensuite installer MongoDB :

1
$ aptitude install mongodb-10gen

Mais encore cette erreur, n’est ce pas ? Le problème vient en fait du kernel modifié à la sauce OVH. La solution est donc de basculer sur un kernel Debian qui fonctionnera tout aussi mieux !

Changement de kernel

1
2
$ uname -r
3.10.9-xxxx-grs-ipv6-64

Bon, inutile de préciser que c’est le moment ou jamais de faire un bon gros backup…
On va déjà voir ce qu’un a de dispo :

1
2
3
4
5
6
7
8
9
$ aptitude search linux-image
v linux-image -
p linux-image-2.6-amd64 - Linux for 64-bit PCs (dummy package)
i linux-image-3.2.0-4-amd64 - Linux 3.2 for 64-bit PCs
p linux-image-3.2.0-4-amd64-dbg - Debugging symbols for Linux 3.2.0-4-amd64
p linux-image-3.2.0-4-rt-amd64 - Linux 3.2 for 64-bit PCs, PREEMPT_RT
p linux-image-3.2.0-4-rt-amd64-dbg - Debugging symbols for Linux 3.2.0-4-rt-amd64
p linux-image-amd64 - Linux for 64-bit PCs (meta-package)
p linux-image-rt-amd64 - Linux for 64-bit PCs (meta-package), PREEMPT_RT

Mon choix va en faveur du linux-image-3.2.0-4-amd64 :

1
2
3
4
5
$ cd /etc/grub.d/
$ mv 06_OVHkernel 11_OVHkernel
$ aptitude install linux-image-3.2.0-4-amd64
$ grub-mkconfig
$ update-grub2

Si tout va bien, le nouveau kernel est en place et sera utilisé au prochain reboot :

1
$ reboot

Vous stressez, n’est-ce pas ?

Une fois le serveur redemarré (si il redemarre un jour !), reloguez vous et faites à nouveau un uname :

1
2
$ uname -r
3.2.0-4-amd64

Yeah, on n’a pas tout cassé. Y’a plus qu’à !

1
2
$ /etc/init.d/mongodb restart
[ ok ] Restarting database: mongodb.