4
我正在嘗試使用amazon EC2實例構建集羣。用於創建erlang集羣的主機名
是否必須將每個節點的主機名設置爲.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 [email protected]
我試圖將主機名更改爲全獨立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,這裏是安全組我對目前:
(你的意思是做'Path.expand( 「〜/ .hosts/.erlang」)'在IEX段?你能不能也做'File.read'就可以了,只是以確認?) – Dogbert
請參閱上面的編輯 – simo
按開始用erl命名一個沒有名字的shell,你只是啓動一個沒有發佈的本地節點。當您運行'mix edeliver ping production'(或分段,取決於您正在測試的環境)時,輸出是什麼? –