Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于创建erlang群集的主机名_Erlang_Elixir_Edeliver - Fatal编程技术网

用于创建erlang群集的主机名

用于创建erlang群集的主机名,erlang,elixir,edeliver,Erlang,Elixir,Edeliver,我正在尝试使用AmazonEC2实例构建集群 是否必须将每个节点的主机名设置为.hosts.erlang文件中列出的内容 目前,每个节点的.hosts.erlang都有: 'ip-10-0-23-186.eu-central-1.compute.internal'. 'ip-10-0-5-10.eu-central-1.compute.internal'. 哪些是节点的私有DNS 在节点的vm.args中,我有如下内容: -name api@ip-10-0-5-10.eu-central-1.

我正在尝试使用AmazonEC2实例构建集群

是否必须将每个节点的主机名设置为
.hosts.erlang
文件中列出的内容

目前,每个节点的
.hosts.erlang
都有:

'ip-10-0-23-186.eu-central-1.compute.internal'.
'ip-10-0-5-10.eu-central-1.compute.internal'.
哪些是节点的私有DNS

在节点的
vm.args
中,我有如下内容:

-name api@ip-10-0-5-10.eu-central-1.compute.internal 
我试图将主机名更改为完全专用dns,但它仅更改为:

ip-10-0-5-10

我检查了集群,结果是空的:

$ erl
Erlang/OTP 19 [erts-8.0] [source] [64-bit] [smp:4:4] [async-threads:10] [kernel-poll:false]

Eshell V8.0  (abort with ^G)
1> nodes().
[]
我使用edliver部署我的应用程序,如何调试erlang为什么没有创建预期的集群

我在iex上试过:

iex(3)> hosts_path = Path.expand("/home/admin/.hosts.erlang") 
"/home/admin/.hosts.erlang"
iex(4)> :net_adm.world(:verbose)
[]
编辑

我可以确认可以读取
.hosts.erlang

iex(2)> File.read("/home/admin/.hosts.erlang")
{:ok,
 "'ip-10-0-23-186.eu-central-1.compute.internal'.\n'ip-10-0-5-10.eu-central-1.compute.internal'.\n\n"}
是否有我必须从中运行erl的特定文件夹

在浏览器中,我可以看到应用程序正常工作,但我不确定集群。。请帮忙

由于我正在使用AWS,以下是我目前所在的安全组:


好的,我找到了解决方案,我必须在每个节点的
/etc/hosts
的hosts文件中定义节点的ip地址

10.0.23.186 ip-10-0-23-186.eu-central-1.compute.internal
10.0.5.10   ip-10-0-5-10.eu-central-1.compute.internal

(您是否打算在iex代码段中执行
Path.expand(“~/.hosts/.erlang”)
?您是否也可以执行
File.read
,只是为了确认?)请参见上面的编辑通过使用erl启动shell而不使用名称,您只是启动了一个没有分发的本地节点。运行
mix-edeping-production
(或staging,取决于测试的环境)时的输出是什么