Instalando MongoDB + drivers en SUSE Linux SLES 10, algunos apuntes

Publicado
Comentarios:  Ninguno

Instalando MongoDB en un servidor SUSE SLES 10

Bueno, una vez escogida la herramienta procederemos a su instalación .

No me extenderé en los detalles ya que en su web podemos encontrar buena documentación ya escrita sobre el tema. Explicaré la configuración, cómo instalé algunos drivers y la herramienta que he escogido (RockMongo) para poder consultar el estado del servidor.

Esta instalación es para un caso sencillo, una instancia del servidor funcionando de forma aislada.

Más adelante, cuando tengamos el sharding funcionando, habrá que modificar la configuración

En mi caso para instalar una instancia en SUSE Linux Enterprise Server 10 destacaría que he tenido que usar la versión compilada estáticamente (la que aparece en el enlace de “legacy-static” en la página de descargas) y los siguientes puntos ….

Configuración del servidor

Podemos arrancar el servidor indicando las distintas opciones en líneas de comando o, preferiblemente, creando un archivo de configuración. Para un caso sencillo, de una sola instancia, el archivo de configuración que he definido es:

dbpath = /directorio/para/los/datos
logpath = /directorio/para/los/logs
logappend = true
unixSocketPrefix = /directorio/para/el/socket
rest = true
fork = true
directoryperdb = true

El driver para PHP hay que compilarlo con pecl

Para instalar el driver de PHP de Mongo he tenido que compilarlo. Con las herramientas PEAR y las librerías de desarrollo de PHP instaladas ejecutaríamos …

Compilación del driver de PHP

pecl download mongo
tar -xvf mongo-1.2.10.tar
cd mongo-1.2.10
phpize
./configure
make

Y encontraremos el fichero “mongo.so” en la carpeta “modules”, que tendremos que instalar junto al resto de los drivers PHP en nuestro Apache.

make install

Luego en el “php.ini” de la instalación de PHP habrá que añadir las líneas

Configuración del php.ini

; Driver pour MongoDB
extension=mongo.so

Compilación e instalación del driver de Python

Los ficheros correspondientes al driver de Python (PyMongo) los vamos a instalar en un “entorno virtual Python” en una carpeta para no afectar al Python del sistema.

Después de instalar las librerías de Python (paquete “python-devel”) y la herramienta virtualenv.py para crear el entorno y “pip” para descargar e instalar el driver …

Instalación de PyMongo con pip

mkdir $HOME/mipython
python virtualenv.py $HOME/mipython
source $HOME/mipython/bin/activate
pip install pymongo

Para usar este entorno tendremos que indicar en los scripts de Python la ruta del intérprete:

#!/users/mnd00/libext/python2.4/bin/python

RockMongo como herramienta de gestión del servidor

Herramientas gráficas para visualizar los datos y administrar MongoDB hay unas cuantas (un listado recomendado de ellas se puede encontrar en esta sección del articulo MongoDB de la wikipedia inglesa)

Tras probar varias la que me pareció más interesantes es RockMongo, un interfaz de administración escrito en PHP (yo lo instalé en un servidor web Apache que se ejecuta en la misma máquina que MongoDB)

Una vez descargado el fichero rockmongo-v1.1.2.zip y descomprimido su contenido en una carpeta accesible por nuestro servidor web veremos la página principal de la aplicación tiene el siguiente aspecto.

RockMongo, captura de pantalla

Aunque está muy bien y es muy completa para verificar lo que vamos haciendo en un primer momento, es más rápido y cómodo usar los comandos de administración con el cliente de consola “mongo”.

Añadiendo un usuario administrador

Aunque tiene soporte para autentificación con usuario y contraseña, por defecto MongoDB arranca sin ninguna opción de seguridad activada.

Para añadir un usuario administrador (de nombre y clave “mongodb” en el ejemplo) tendremos que:

  • Desde la consola “mongo” añadir el usuario a la base de datos “admin”:

use admin
db.addUser("mongodb", "mongodb")
  • Activar el soporte de autentificación en la configuración (y reiniciar el servidor)

Línea a añadir al archivo de configuración de Mongo

auth = true
  • Activar también el soporte de autentificación en la aplicación “RockMongo”

Valores de configuración a establecer en el “config.php”

$MONGO["servers"][$i]["mongo_auth"] = true;
$MONGO["servers"][$i]["control_auth"] = false;

Los usuarios y contraseñas se establecen para cada base de datos. La base de datos especial “admin” le indica al sistema que usuarios tienen privilegios de administración sobre todas ellas.


Etiquetas: , ,

Comentarios

Actualmente no hay comentarios a este artículo.

Añadir comentarios ...

Escribe debajo tu comentario. Los campos marcados con * son obligatorios. Tienes que previsualizar tu comentario antes de enviarlo definitivamente.