用于创建erlang集群的主机名

时间:2016-11-28 11:28:03

标签: erlang elixir edeliver

我正在尝试使用amazon EC2实例构建群集。

我是否必须将每个节点的主机名设置为.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时,这是我目前所在的安全组:

enter image description here

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案,我必须在每个节点的/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