我正在尝试使用亚马逊 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 时,这是我目前所在的安全组: