ubuntu 14.04 上的 mongooseim 集群设置错误

mongooseim cluster setup eacces error on ubuntu 14.04

我们正在尝试在同一虚拟网络中的 AWS 上创建两个 mongooseim 实例的主-主集群。 在 AWS 安全组中打开所有必要的端口。

我怀疑 Ubuntu 14.04 LTS

上的 mongooseim 设置存在一些问题

在其中一个节点上执行 运行 join_cluster 命令后,我们得到如下错误(参考屏幕截图) 错误:{error,{badmatch,{error,eacces}}}

附有详细信息的屏幕截图。 除了 vm args 外,服务器配置未更改,如所附屏幕截图所示。

这是您的二进制文件的问题吗?还是其他一些故障?

我自己 运行 进入这个问题。 Mongoose 使用 erlangs 内部 mnesia 存储系统来存储包括集群拓扑在内的大量信息。 mnesia 的默认存储路径是/var/lib/mongooseim。当您执行 mongooseimctl join_cluster ... 时,它需要擦除它的 mnesia 存储并基本上从它加入的集群中提取一个副本。出现这个问题是因为它也试图删除 /var/lib/mongooseim 本身,它没有权限这样做,因为 运行 用户 mongooseim 没有父目录的权限,/var/lib。也不应该。

我解决这个问题的方法是创建一个可以安全删除和重新创建的子目录,并将其配置为使用它作为 mnesia 目录:

sudo mkdir /var/lib/mongooseim/mnesia
sudo chown mongooseim:mongooseim /var/lib/mongooseim/mnesia

mnesia 目录的配置默认存在于 /etc/mongooseim/app.config 中。在我的是第三行。最初看起来像这样:

{mnesia, [{dir, "/var/lib/mongooseim"}]},

我将路径更改为我创建的新目录

{mnesia, [{dir, "/var/lib/mongooseim/mnesia"}]},

之后,我停止并启动了 mongoose,并成功加入了集群

mongooseimctl stop
mongooseimctl start && mongooseimctl started
mongooseimctl join_cluster mongooseim@other.node.name