Настройка mongodb через upstart - как передать параметры?
Я установил MongoDB на виртуальной машине Ubuntu Server внутри VMware, используя следующие инструкции: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/. Все отлично работает, и я могу получить доступ к MongoDB через обычный порт 27017
./mongo 172.16.150.131:27017
Теперь я хочу создать фиктивный набор реплик и еще один экземпляр БД для тестирования моего приложения. Я привык выполнять следующие команды в четырех отдельных терминалах на моем локальном компьютере:
./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
Как я могу сделать это в ВМ? Я подключаю SSH к своей виртуальной машине, и после запуска команд и закрытия моих терминалов (в OS X) они все еще должны работать.
Я старался:
service mongodb --port 27027 --dbpath ~/mongodb/solo
service mongodb ~/mongodb/solo/mongodb.conf
Но оба получают следующую ошибку (в разных контекстах):
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.
Как мне заставить это работать? Впервые работаю с Ubuntu в качестве сервера. Благодарю.
Контекст - цель состоит в том, чтобы создать свою БД в ВМ, чтобы создать некоторую задержку при тестировании моего приложения, но в основном так, чтобы я мог просто приостановить ВМ вместо копирования и вставки скриптов в разные терминалы для настройки MongoDB всякий раз, когда я перезагружаю свой ноутбук.
1 ответ
Когда вы устанавливаете с использованием пакета Ubuntu, он создает задание upstart, и это то, что вы запускаете / останавливаете со службой в системе Ubuntu. Конечно, это только начинается один mongod
и имеет один конфиг по умолчанию. Это выскочку работы можно найти здесь (по умолчанию):
/etc/init/mongodb.conf
Это не следует путать с /etc/mongodb.conf
который является местоположением по умолчанию файла конфигурации для службы MongoDB.
Если вы хотите иметь возможность запускать / останавливать дополнительные экземпляры автоматически или вы хотите, чтобы выскочивший управлял ими, вам просто нужно создать дубликаты заданий, которые указывают на разные конфигурационные файлы (или имеют разные параметры, указанные в самом файле задания). Начните с просмотра файла в init, о котором я упоминал выше, а затем посмотрите здесь для получения дополнительной информации о развертывании ваших собственных выскочки:
http://upstart.ubuntu.com/cookbook/
Другой вариант, конечно, просто вызвать дополнительные mongod
экземпляры напрямую. Например:
/usr/bin/mongod --fork --config=~/mongodb/solo/mongodb.conf
--fork
опция (если она не указана в файле конфигурации) необходима для перехода в фоновый режим и не будет уничтожена при выходе из системы и завершении работы оболочки.