我们正在尝试在同一虚拟网络中的AWS上创建两个mongooseim实例的主 - 主集群。 所有必需的端口都在AWS安全组中打开。
我怀疑在Ubuntu 14.04 LTS上使用mongooseim设置有些问题
在其中一个节点上运行join_cluster命令后,我们得到如下错误(参见屏幕截图) 错误:{error,{badmatch,{error,eacces}}}
附上详细信息的截图。 除了vm args之外,服务器配置没有更改,如附带的屏幕截图所示。
这是你的二进制文件的问题吗?还是其他一些小故障?
答案 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