web-dev-qa-db-ja.com

Amazon OpsWorks-mongodbpathでebsボリュームを参照できません

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とは別に実行する必要があるレシピはありますか?

1
andriys

ここでいくつかの基本的なこと:

まず、/ 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または同様のものにする必要があります。

1
Adam C