Installationsanleitung Linux-Debian

Installationsanleitung Debian GNU/Linux

Vorbereitung

Grundsaetzlich wird in diesem Dokument von einem Debian GNU/Linux ausgegangen.
Da die aktuelle mongoDB-Distribution von glibc >= 2.4 abhaengt kann
Debian etch (derzeit oldstable) nicht verwendet werden,
daher wird angenommen das ein Debian lenny (derzeit stable) verwendet wird.

mongoDB beziehen

mongoDB steht sowohl in Binaer-Distributionen als auch in Source-Tarballs zur Verfuegung,
es wird empfohlen die Binaer-Distribution zur Installation zu verwenden.

Die Binaer-Distributionen lassen sich unter http://www.mongodb.org/display/DOCS/Downloads finden,
in diesem Beispiel wird die Version 0.9.2 in der Variante fuer ein x86/64 bit Linux verwendet.

Herunterladen und entpacken

# cd /tmp/                                                               
# wget http://downloads.mongodb.org/linux/mongodb-linux-x86_64-0.9.2.tgz
# tar -xzf mongodb-linux-x86_64-0.9.2.tgz

In Zielorder verschieben / Datenordner anlegen

Achtung

Die Dateipfade in diesem Dokument weichen von den Default-Pfaden ab, mongoDB legt Daten per default in /data/db ab!

# mv mongodb-linux-x86_64-0.9.2 /opt/mongodb
# mkdir /data && mkdir /data/mongodb

Testlauf

Nach diesen Schritten ist mongoDB theoretisch bereits einsetzbar
und kann von Hand gestaret werden.

# /opt/mongodb/bin/mongod --dbpath /data/mongodb/ run

mongoDB einrichten

mongoDB kommt derzeit von Haus aus ohne Start/Stop Script, jedoch laesst sich dieses relativ einfach erstellen.

User anlegen

Es bietet sich an einen eigenen User fuer mongodb anzulegen, in diesem Beispiel \"mongod\",
und den Datenordner diesem zuzuweisen:

# useradd mongod -s /bin/false
# chown -R mongod:mongod /data/mongodb

Config-File

Als naechstes sollte ein Config-File angelegt werden in dem der User und die fuer den Start noetigen Optionen eingetragen werden, in diesem Beispiel der Pfad zu dem Datenordner.

# mkdir /etc/mongodb
# cat << EOF > /etc/mongodb/mongodb.conf
MONGO_USER="mongod"
MONGO_OPTS="--dbpath /data/mongodb/"
EOF
Hint: -f config file

MongoDB besitzt inzwischen die Möglichkeit diverse Optionen in einem eigenen Config-File festzulegen, mehr Informationen dazu im englischsprachigen Handbuch.

Start/Stop-Script

Das eigentliche Start/Stop Script sollte unter /etc/init.d/mongodb erzeugt und ausfuehrbar gemacht werden:

Achtung

in der ersten und letzten Zeile steht das # nicht fuer ein Kommentar sondern repraesentiert die Kommandozeile, in den Zeilen dazwischen jedoch handelt es sich um (teilweise notwendige) Kommentare in dem Shellscript!

# cat << EOF > /etc/init.d/mongodb
#! /bin/sh
# start / stop script for mongodb

### BEGIN INIT INFO
# Provides:          mongod
# Required-Start:    \$remote_fs \$syslog
# Required-Stop:     \$remote_fs \$syslog
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start mongod at boot time
# Description:       Enable service provided by mongod.
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

retval=0
pidfile=/var/run/mongodb.pid

exec="/opt/mongodb/bin/mongod"
prog="mongod"
config="/etc/mongodb/mongodb.conf"
lockfile="/var/lock/mongod"

[ -e \$config ] && . \$config

start() {
    if [ ! -x \$exec ]
    then
        echo \$exec not found
        exit 5
    fi

    log_daemon_msg "Starting mongoDB daemon"
    log_progress_msg \$prog

    start-stop-daemon --start --pidfile \$pidfile -m -c \$MONGO_USER \
                      --exec \$exec -- \$MONGO_OPTS run > /dev/null 2>&1 &
    retval=$?
    
    if [ \$retval -eq 0 ]
    then
        log_end_msg 0
    else
        log_end_msg 1
    fi
    return \$retval
}

stop() {
  log_daemon_msg "Stopping mongoDB daemon"	
  log_progress_msg \$prog
  start-stop-daemon --stop --pidfile \$pidfile --retry 10 \
    --exec \$exec
    
    retval=$?
    
    if [ \$retval -eq 0 ] && rm -f \$lockfile 
    then
        log_end_msg 0
    else
        log_end_msg 1
    fi
    rm -f \$pidfile 
    return \$retval
}

restart() {
    stop
    start
}

reload() {
    restart
}

# See how we were called.
case "\$1" in
    start)
        \$1
        ;;
    stop)
        \$1
        ;;
    restart)
        \$1
        ;;
    reload)
        \$1
        ;;
    *)
    echo "Usage: \$0 {start|stop|status|restart|reload}"
    exit 2
esac

exit \$?

EOF
# chmod +x /etc/init.d/mongodb

Der mongoDB daemon kann nun mit

# /etc/init.d/mongodb start

gestartet und mit

# /etc/init.d/mongodb stop

beendet werden.
Um das Start/Stop Script nun in den Bootvorgang aufzunehmen bedarf es folgender Zeile:

# update-rc.d mongodb defaults

Weitere Informationen


Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

IF YOU HAVE A QUESTION, POST IT TO THE USER GROUP.

These pages are fine for comments, but for questions, your best bet will always be the MongoDB User Group.

blog comments powered by Disqus