lunes, 25 de enero de 2016


PRE REQUISITOS:

- Pre instalación de mongo database en su versión 10gen... Si no has hecho la instalación puedes seguir esta guía: Instalar MongoDB 3.X en Ubuntu
- (Opcional) Desde windows, pre instalar el programa Vim para evitar conflictos de espacios, derivando en archivos corruptos al traspasar a Linux las ediciones. Una vez en el VIM, si copias y pegas segmentos o preferiblemente siempre antes de guardar ejecuta lo siguiente:
:set fileformat=unix

1) VERIFICACIÓN DE PERMISOS

Lo primero que debemos hacer es verificar los permisos de las carpetas /var/lib/mongodb y /data/db , de las cuales usaremos /data/db en nuestro archivos de configuración que veremos a continuación; por lo tanto, debemos asegurarnos que ambas carpetas tengan el usuario requerido por mongo. En las instalaciones default por lo general se requiere que estas carpetas tengan los usuarios "mongodb" y "root" con acceso a todas las subcarpetas y archivos.

Para equiparar permisos se puede utilizar el siguiente script:
sudo chown -R /data/db

No está demás indicar un comando para buscar nombres de archivos en todo el sistema antes de continuar:
$ find / -mount -name '*'

2) ARCHIVO MONGOD.CONF EN LA CARPETA /etc

Este archivo posiblemente se haya creado con la instalación de mongo, de igual manera dejaré un ejemplo que está funcionando:
# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: /data/db
  journal: 
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:



3) ARCHIVO MONGODB.CONF EN LA CARPETA /etc/init - Este archivo es el script upstart que invocará el servicio llamando a su vez al otro archivo .conf de la carpeta etc... Se basa en YAML por lo cual hay que tener cuidado con la posición de los comandos, en particular separar el "valor" de la declaración por un espacio en blanco.

- Un ejemplo de script upstart mongo funcionando:


# Ubuntu upstart file at /etc/init/mongodb.conf

pre-start script
    mkdir -p /var/lib/mongodb/
    mkdir -p /var/log/mongodb/
end script

start on runlevel [2345]
stop on runlevel [06]

script
  ENABLE_MONGODB="yes"
  if [ -f /etc/default/mongodb ]; then . /etc/default/mongodb; fi
  if [ "x$ENABLE_MONGODB" = "xyes" ]; then
        if [ -f /var/lib/mongodb/mongod.lock ]; then
                rm /var/lib/mongodb/mongod.lock
                #sudo -u mongodb /usr/bin/mongod --config /etc/mongod.conf --repair
        fi

        if [ -f /data/db/mongod.lock ]; then
                rm /data/db/mongod.lock
        fi

        exec start-stop-daemon --start --quiet --chuid mongodb --exec  /usr/bin/mongod -- --config /etc/mongod.conf
  fi
end script



4) EJECUCIÓN Y TEST

- Algo muy importante es el probar estos archivos y para ello puedes ejecutar desde la consola, ubicándote en la carpeta contenedora el siguiente comando:

Para iniciarlo: sudo service mongodb start
Para ver el estatus: sudo service mongodb status
Para detenerlo: sudo service mongodb stop

- El log para visualizar los errores y avances en la concreción del script estaría ubicado en la siguiente ruta de sistema:
/var/log/upstart/mongodb.log y pasando este nivel el próximo log sería el que se tiene parametrizado en los scripts; en mi caso esta en la ruta: var/log/mongodb/mongodb.log

Es importante también no confundir Upstart (etc/init) con los tradicionales scripts Daemon (etc/init.d), partiendo de que son configuraciones distintas y se ubican en repositorios distintos. Para profundizar UBUNTU STARTUP INIT SCRIPTS METHODS

SHARD MONGO SERVERS (AVANZADO)

http://www.joslynesser.com/blog/archives/2010/09/28/mongodb-sharding-guide-server-setup-on-ubuntu-ec2/

0 comentarios:

Publicar un comentario

Subscribe to RSS Feed Sígueme en twitter!