Azure上でMongoDBを展開したので備忘録。次のサイトを参考に作業を行う。
Azure 上で CentOS Linux を実行する仮想マシンへの MongoDB のインストール
Install MongoDB on Linux on Azure
環境
OpenLogic CentOS 7.0
MongoDB 2.6.5
仮想マシンの設定
■ AzureポータルでVMを作成したのちSSHでVMにアクセス
ひとまずupdate
$ sudo yum update
■ データディスクを接続
Azureポータルで作成したVMにディスクを接続。
とりあえず10GB割り当てた。
■ データディスクの初期化
最後に追加されたデータディスクを確認
$ sudo grep SCSI /var/log/messages
パーティション分割
$ sudo fdisk /dev/sdc
nで新しいパーティション作成
pでディスクの詳細情報
wで設定の書き込み
データディスクをフォーマット
$ sudo mkfs -t ext4 /dev/sdc1
データディスクをマウント
$ sudo mkdir /datadrive
$ sudo mount /dev/sdc1 /datadrive
マウント設定
$ sudo -i blkid
/dev/sda1: UUID="11111111-1b1b-1c1c-1d1d-1e1e1e1e1e1e" TYPE="ext4"
/dev/sdb1: UUID="22222222-2b2b-2c2c-2d2d-2e2e2e2e2e2e" TYPE="ext4"
/dev/sdc1: UUID="33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e" TYPE="ext4"
/etc/fstabに追記
/etc/fstab
UUID=33333333-3b3b-3c3c-3d3d-3e3e3e3e3e3e /datadrive ext4 defaults 1 2
マウント確認
$ sudo umount /datadrive
$ sudo mount /datadrive
MongoDBのインストール
/etc/yum.repos.d/mongodb.repoを作成。
/etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1
mongodbをインストール
$ sudo yum install mongo-10gen mongo-10gen-server
データディレクトリの作成
$ sudo mkdir -p /mnt/datadrive/data
$ sudo chown `id -u` /mnt/datadrive
$ sudo chown `id -u` /mnt/datadrive/data
設定ファイルの編集
/etc/mongod.conf
logpath=/mnt/datadrive/mongod.log
dbpath=/mnt/datadrive/data
起動(初回起動は時間がかかる)
$ mongod --config /etc/mongod.conf
起動状態はログファイルをチェック
$ tail --f /mnt/datadrive/mongod.log
ユーザー設定
アクセスコントロール
$ mongo
# データベース管理権限
> use admin
> db.createUser({
user: "[user]",
pwd: "[password]",
roles: [
{
role: "userAdminAnyDatabase",
db: "admin"
}
]
})
# 特定データベース管理権限
> use [database]
> db.createUser({
user: "[user]",
pwd: "[password]",
roles: [
{
role: "userAdmin",
db: "[database]"
}
]
})
# ユーザーが追加されているか確認
> use admin
> db.system.users.find()
mongoDBをシャットダウン
$ mongo
> use admin
> db.shutdownServer()
設定ファイルに以下を追記して認証を有効化
/etc/mongod.conf
auth=true
mongoDBを起動して認証をチェック
$ mongo
> use admin
# 成功なら1が返る
> db.auth("[user]","[password]")