我正在使用 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 之外,我还需要运行其他方法吗?
答案1
这里有一些基本的事情:
首先,您的 /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
或类似的。