LoginSignup
19
17

More than 5 years have passed since last update.

Vagrant VMにMongoDBをインストール(メモ)

Last updated at Posted at 2014-08-06

参考:antonyh/vagrant-mongodb

Vagrant上にMongoDBをインストールする手順について記述します。

必要な環境

以下の環境が必要なので、あらかじめ用意しておきます。

  • Vagrant
  • VirtualBox
  • VMのための空き容量とメモリ

注意事項

デフォルトの設定だと以下の問題があります。
こちらを解決するには後述の「MongoDB設定」を参照してください。

  • 管理画面が有効になっていません
  • ホストOSからのアクセスができません

セットアップ

公開されているboxを利用して起動します。
OSはFedora、Puppetを利用してMongoDBをインストールしています。

  1. antonyh/vagrant-mongodbをダウンロード(またはクローン)
  2. Vagrant起動 $ vagrant up
  3. Vagrant VMへ接続 $ vagrant ssh
  4. MongoDBシェルの起動
 [vagrant@localhost ~]$ mongo
MongoDB shell version: 2.4.6
connecting to: test
>

入力待ちとなればセットアップは成功です。
シェルを終了させるにはquit()を実行します

デフォルトの環境

  • OS
[vagrant@localhost ~]$ cat /etc/redhat-release
Fedora release 20 (Heisenbug)
  • MongoDB
[vagrant@localhost ~]$ mongo --version
MongoDB shell version: 2.4.6
  • Puppet
[vagrant@localhost ~]$ puppet --version
3.4.3

MongoDB設定

そのまま起動すると以下の問題があるので、修正します。

ホストから接続出来るようにする

mongodb.confを下記の通り編集して、sudo service mongod restart

#bind_ip = 127.0.0.1
bind_ip = All

管理画面を有効にする

mongodb.confを下記の通り編集して、sudo service mongod restart

# Disable the HTTP interface (Defaults to port+1000).
#nohttpinterface = true
nohttpinterface = false

上記の設定を自動化する

はじめから上記設定になるようPuppetの設定を変更すると便利です。
Puppetで/etc/mongodb.confを生成する設定を追加。

Puppet/modules/mongo/manifests/init.pp
    file { "/etc/mongodb.conf" :
        content => "
bind_ip = All
port = 27017
fork = true
pidfilepath = /var/run/mongodb/mongodb.pid
logpath = /var/log/mongodb/mongodb.log
dbpath =/var/lib/mongodb
journal = true
nohttpinterface = false
"
    }

確認

ホストOSにMongoDB Clientが入っている場合は接続してみましょう。
ポートはデフォルトのMongoDBのポートがフォワードされているので、そのままホストOSで接続すればOKです。

$ mongo
MongoDB shell version: 2.6.3
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
>

管理画面が有効な場合は、ブラウザで管理画面にアクセスしてみましょう。
http://localhost:28017/

ホストOSから接続出来ない場合

ホストOSから接続出来ない場合は以下を確認してみましょう。

  • Vagrantfile
    • forwarded_portの設定が正しいか?
  • ホストOSでポートが空いているか?
    • 27017,27018,27019,28017
    • 空いていない場合はVagrantofileを編集してホストのポートを変更する
  • mongodb.conf
    • bind_ipでホストOSの接続が許可されているか?

管理画面にアクセス出来ない場合は、上記に加えて以下もチェックします。

  • mongodb.conf
    • nohttpinterface = false に設定されているか?
19
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
17