AWS OpsWorksを使用したMongoDBレプリカセットのセットアップ で説明されているようにAmazon OpsWorksを使用してmongoをデプロイしていますが、dbpathでマウントされたebsボリューム(/ data/ebs)を指定するとインスタンスが起動しません。
スタックのカスタムjsonは次のとおりです。
{
"mongodb" : {
config: {
"dbpath" : "/data/ebs/data/",
"logpath" : "/data/ebs/log/",
}
"cluster_name" : "replicaset",
"replicaset_name": "replicaset"
}
}
Mongoが起動に失敗する理由は、明らかに/ data/ebsの所有権が原因です。
[ec2-user@mongodb1 data]$ ls -la /data/ebs
drwxr-xr-x 2 root root 21 May 24 08:43 .
drwxr-xr-x 3 root root 4096 May 24 04:49 ..
どうすればオーバーライドできますか? mongodb :: 10gen_repoとmongodb :: Replicasetとは別に実行する必要があるレシピはありますか?
ここでいくつかの基本的なこと:
まず、/ data/ebsのリストには、データディレクトリまたはログディレクトリが含まれていないようです。実際に存在しない場合は、両方を作成する必要があります。
次に、/data/ebs/data
フォルダーの所有権はroot:root
であってはなりません。 apt
を介してサービスとしてインストールする場合、関連するユーザーはmongodb
であるため、適切な権限は通常mongodb:mongodb
です。変更するには(ログディレクトリについても繰り返します):
cd /data/ebs/data
Sudo chown -R mongodb:mongodb .
最後に、構成のlogpath
部分は、ディレクトリではなく、ファイルへのフルパスである必要があります。つまり、代わりに/data/ebs/log/mongod.log
または同様のものにする必要があります。