Rafael Aguilar bio photo

Rafael Aguilar

Apasionado del desarrollo, aprendiz de arquitecto y enamorado de la Ciencia y el Arte

Email Twitter Facebook Google+ LinkedIn

#Configuración base del servidor En este apartado conseguiremos todos los pasos previos necesarios para poder usar MongoDB 3.0 en nuestro servidor

Nota

Este artículo está basado en la documentación oficial de MongoDB que podrás conseguir dando click acá. Está probado en un servidor RHEL 5.2 de 64 bits.

Peligro

Para ejecutar las instrucciones de esta guía se deben tener permisos de SuperUsuario o root, avanzar con cuidado en cada paso, cualquier paso en falso puede llevar a un sistema inestable.En caso de no necesitar permisos de root, se especificará, de lo contrario deberá tenerlo.

##Añadiendo repositorios de MongoDB a YUM Con esto podremos asegurarnos en tener las ultima versión disponible, asgurando estabilidad y seguridad:

  1. Primero creamos el directorio para agregar repositorios (en dado caso que no la tengamos ya):\
mkdir /etc/yum.repos.d/
  1. Creamos y editamos el archivo mongodb-org-3.0.repo:\
nano /etc/yum.repos.d/mongodb-org-3.0.repo
  1. Añadimos lo siguiente al archivo creado en el paso anterior:\
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=http://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
Importante

Si desea instalar alguna otra versión de MongoDB debe usar un repositorio distinto cambiando el *baseurl*, para más información de click acá.

##Instalando MongoDB y otras herramientas

  • Para instalar la última versión disponible de MongoDB podemos ejecutar el siguiente comando:\
yum install -y mongodb-org
  • Para instalar un release específico debe especificar cada paquete agregando la versión al nombre del paquete, por ejemplo:\
sudo yum install -y mongodb-org-3.0.1 mongodb-org-server-3.0.1 mongodb-org-shell-3.0.1 mongodb-org-mongos-3.0.1 mongodb-org-tools-3.0.1

##Habilitando puerto de MongoDB en SELinux

Info

Solo es necesario si tu servidor usa SELinux, no aplica para toodos los casos. Aunque siempre es aconsejable tener habilitado un gestor de accesos como SELinux.

SELinux es una implementación de una arquitectura de control de acceso obligatoria y flexible para el Kernel Linux, básicamente permite definir las políticas en espacios de usuario y aplicarlas a nivel del Kernel, entonces sólo permitiremos que deje hablar por el puerto 27017, puerto que usa por defecto MongoDB, con el protocolo tcp:

semanage port -a -t mongod_port_t -p tcp 27017

También existen otras maneras de otorgar la permisología a MongoDB, pero no son tan seguras. Si te interesa da click acá.

#Gestionando MongoDB Al tener MongoDB instalado por nuestro sistema de paquetería nos trae ciertas ventajas en comparación con una instalación Stand-Alone, como tener configurado como servicio el demonio de MongoDB, que es mongod (intuitivo), además que ya trae las rutas de donde guardar los datos y los log’s por ejemplo.

Info

Como todos los pasos previos fueron dejando las opciones por defecto, los comandos para ejecutar son basadas en dichas configuraciones, sin embargo una instalación en productivo seguro requerirá modificaciones más avanzadas, así que si realizas otras modificaciones asegurate de leer bien el Manual de MongoDB para ajustar los cambios necesarios.

##Iniciando MongoDB Ya sólo queda iniciar nuestro servicio de MongoDB ejecutando el siguiente comando:

service mongod start

Debería salir algo como esto:

Starting mongod:                                           [  OK  ]

Pero verifiquemos un poco más, vamos a revisar el log del servicio para asegurar que arrancó sin problemas con el siguiente comando:

tail /var/log/mongodb/mongod.log

Debería aparecer algo como esto en la última línea:

2015-04-06T06:49:21.417-0430 I NETWORK  [initandlisten] waiting for connections on port 27017

Si es así, tenemos corriendo MongoDB exitosamente! :D

##Deteniendo y Reiniciando MongoDB

Los comandos análogos para detener y reiniciar el servicio son:

#Para detener
service mongod stop

#Para reiniciar
service mongod restart

#Instalando PyMongo 3.0rc1 (Python Driver para MongoDB 3.0) Luego de desplegar Python, por el método que prefieras, debes instalar los bindings para MongoDB, en este caso se llaman PyMongo naturalmente. Hay varias maneras de hacerlo, seguramente puedes buscarlo por YUM, pip ó easy_install (los últimos dos son gestores de paquetes de Python), sin embargo puede que te instalen la versión 2.8 ya que es la estable (para la fecha de esta entrada), pero esto puede generar algunos problemas con librerías, aplicaciones o frameworks que estén diseñados para MongoDB 3.0, como Bottle, el cual me dió dolores de cabeza y me llevó a esta guía, pero en resumen puedes ejecutar este comando:

easy_install https://github.com/mongodb/mongo-python-driver/archive/3.0rc1.tar.gz

Y ya con entrar a una consola de Python (como usuario regular) verificar que tienes instalado PyMongo correctamente:

#Primero abrimos la consola de Python
python
#Luego dentro de la consola ya importamos la librería
>>>import pymongo

Si el último comando no arroja absolutamente nada, pues es que estamos bien, pero para chequear concretamente la versión que está utilizando nuestro intérprete podemos correr este comando en una cónsola Python:

>>>import pip; ["%s==%s" % (i.key, i.version) for i in pip.get_installed_distributions() if i.key=='pymongo']
#Debería aparecer algo como esto:
['pymongo==3.0rc1']

Y bueno, solo queda disfrutar de esta grandiosa BD no-relacional, de la cual estaremos habla en próximas entregas.

Overview