Configurando o mongodb via upstart - como passar opções?

1

Instalei o MongoDB em uma VM do Ubuntu Server dentro do VMware usando estas instruções: link . Tudo funciona bem, e eu posso acessar o MongoDB na porta regular 27017

./mongo 172.16.150.131:27017

Agora, quero fazer um conjunto de réplicas simulado e outra instância de db para testar meu aplicativo. Estou acostumado a fazer os seguintes comandos em quatro terminais separados no meu computador local:

./mongod --port 27027 --dbpath ~/mongodb/solo
./mongod --port 27028 --dbpath ~/mongodb/rs0-0 --replSet rs0
./mongod --port 27029 --dbpath ~/mongodb/rs0-1 --replSet rs0
./mongod --port 27030 --dbpath ~/mongodb/rs0-2 --replSet rs0

Como posso fazer isso na VM? Eu SSH em minha VM, e depois de executar os comandos e fechar meus terminais (no OS X), eles ainda devem estar em execução.

Eu tentei:

service mongodb --port 27027 --dbpath ~/mongodb/solo
service mongodb ~/mongodb/solo/mongodb.conf

Mas ambos recebem o seguinte erro (com diferentes contextos):

Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service mongodb --config=~/mongodb/solo/mongodb.conf

The script you are attempting to invoke has been converted to an Upstart
job, but --config=~/mongodb/solo/mongodb.conf is not supported for Upstart jobs.

Como faço para que isso funcione? Primeira vez trabalhando com o Ubuntu como servidor. Obrigado.

Contexto - a meta é criar meu banco de dados em uma VM para criar algum atraso ao testar meu aplicativo, mas principalmente para suspender a VM em vez de copiar e colar scripts em terminais diferentes para configurar o MongoDB sempre que eu reiniciar laptop.

    
por Jonathan Ong 07.12.2012 / 07:35

1 resposta

2

Quando você instala usando o pacote Ubuntu, ele cria um trabalho inicial e é isso que você está iniciando / interrompendo com o serviço em um sistema Ubuntu. Naturalmente, ele só inicia um mongod e tem uma configuração por padrão. Esse trabalho inicial pode ser encontrado aqui (por padrão):

/etc/init/mongodb.conf

Isso não deve ser confundido com /etc/mongodb.conf , que é o local padrão do arquivo de configuração para o serviço MongoDB.

Se você quiser poder iniciar / parar as instâncias extras automaticamente ou se quiser ter o newstart para gerenciá-las, basta criar tarefas duplicadas que apontam para arquivos de configuração diferentes (ou ter opções diferentes especificadas no arquivo de trabalho em si). Comece dando uma olhada no arquivo no init que mencionei acima e, em seguida, dê uma olhada aqui para obter mais informações sobre como rolar seus próprios trabalhos iniciantes:

link

A outra opção, é claro, é simplesmente invocar diretamente mongod instâncias extras. Por exemplo:

/usr/bin/mongod --fork --config=~/mongodb/solo/mongodb.conf

A opção --fork (se não for especificada no arquivo de configuração) é necessária para bifurcar-se no plano de fundo e não ser eliminada quando você efetuar logout e encerrar o shell.

    
por 07.12.2012 / 13:43