mongooseim群集设置在ubuntu 14.04上发生错误

时间:2017-06-21 10:50:54

标签: erlang xmpp cluster-computing ejabberd mongoose-im

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

我怀疑在Ubuntu 14.04 LTS上使用mongooseim设置有些问题

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

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

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

enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

我自己遇到了这个问题。 Mongoose使用erlangs内部mnesia存储系统来获取包括集群拓扑在内的许多信息。 mnesia存储的默认路径为/var/lib/mongooseim。当你执行mongooseimctl join_cluster ...时,它需要擦除它的mnesia商店,并且基本上从它加入的集群中提取副本。出现此问题的原因是它还尝试删除/var/lib/mongooseim本身,因为正在运行的用户mongooseim不具有父目录/var/lib的权限,因此它无权执行此操作。 1}}。也不应该。

我修复此问题的方法是创建一个子目录,它可以安全地删除并重新创建和配置它以使用它作为mnesia目录:

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

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

{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