在Google Compute Engine实例

时间:2016-08-26 15:36:16

标签: mongodb google-compute-engine google-cloud-platform startup sudo

我已将Mongo设置为在GCE实例上运行。

起初我在/工作并使用sudo mongod启动mongo,但合理的是它打印了一些警告:

  

警告:您以root用户身份运行此进程,   这是不推荐的。

所以我把所有内容都移到了/home/my_google_account,我可以通过SSH进入并运行mongod

现在我想要一些行动,包括mongod,在启动时运行。根据我的理解,正确的方法是使用Google startup scripts:在控制台中,您可以提供如下的脚本作为元数据键值对:

#! /bin/bash
apt-get update
mongod -f /home/my_google_account/mongod.conf

有效,但正如Google所说,这是以root身份执行的:

  

实例始终以root身份执行启动脚本   在创建任何具有SSH密钥的新用户后执行这些脚本   包含在实例元数据中。

所以mongod进程以root权限运行,我仍然收到我原来的警告:

  

警告:您以root用户身份运行此进程,   这是不推荐的。

我该怎么办?

启动脚本是否有办法不以root身份运行? 或者我应该/sudo一起工作并忽略警告? 每个人似乎都建议您应该在用户的主文件夹中工作,获得必要的权限,并使用您的权限运行mongod。但是,启动脚本无论如何都将以root身份运行!

1 个答案:

答案 0 :(得分:0)

试试这个 - 将用户添加到您的永久磁盘 -

useradd -ms /bin/bash mongouser
#replace /data/db with your data location
chown -R mongouser /data/db

将此添加到您的starup脚本

apt-get update
sudo mongouser -c 'mongod -f /home/my_google_account/mongod.conf'