Amazon OpsWorks – 无法在mongo dbpath中引用ebs卷

我正在使用Amazon OpsWorks部署mongo,如使用AWS OpsWorks设置MongoDB复制副本所述,并且当我在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 . 

最后,configuration的logpath部分需要是文件的完整path,而不是目录。 也就是说,它应该是/data/ebs/log/mongod.log或者类似的。