J'essaye de construire un cluster en utilisant des instances d'Amazon EC2. Dois-je définir le nom d'hôte de chaque noeud sur le fichier .hosts.erlang
?nom d'hôte pour la création d'un cluster erlang
Actuellement, .hosts.erlang
pour chaque nœud a:
'ip-10-0-23-186.eu-central-1.compute.internal'.
'ip-10-0-5-10.eu-central-1.compute.internal'.
qui sont le DNS privé de nœuds.
et dans le vm.args
des noeuds, j'ai quelque chose comme ceci:
-name [email protected]
J'ai essayé de changer le nom d'hôte à la dns privée complète, mais il seulement changé à:
ip-10-0-5-10
J'ai vérifié le cluster, j'ai vide:
$ 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().
[]
Je déploie mon application en utilisant edliver, comment puis-je déboguer pourquoi erlang ne crée pas le cluster attendu?
J'ai essayé dans IEX:
iex(3)> hosts_path = Path.expand("/home/admin/.hosts.erlang")
"/home/admin/.hosts.erlang"
iex(4)> :net_adm.world(:verbose)
[]
modifier
Je peux confirmer que le .hosts.erlang
peut être lu:
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"}
est-il un dossier spécifique que je dois courir erl de?
Dans le navigateur, je peux voir l'application fonctionne normalement, mais je ne suis pas sûr du cluster .. s'il vous plaît aider!
Comme je suis en utilisant AWS, voici le groupe de sécurité Je suis en ce moment:
(Vouliez-vous dire faire 'Path.expand ("~/.host/.erlang")' dans l'extrait IEX? Pourriez-vous aussi 'File.read' sur elle, juste pour confirmer?) – Dogbert
s'il vous plaît voir modifier ci-dessus – simo
Par le début Si vous utilisez un shell avec erl sans nom, vous lancez simplement un noeud local sans distribution. Quelle est la sortie lorsque vous exécutez 'mix edeliver ping production' (ou staging, dépend de l'environnement que vous testez) –