我正在尝试将猫鼬的节点名称更改为我的本地 ip,类似于 10.0.0.21。我在MongooseIM/rel/vars.config.中更改了配置>
{node_name,"mongooseim@10.0.0.21"}
有什么需要改变的吗?
更改节点名称时出现以下错误
=信息报告==== 11-三月-2016::17:11:05 === 无法设置短节点名称! 请检查您的配置 描述:异常错误:右侧值不匹配 {错误, {{关机, {failed_to_start_child,net_kernel, {'EXIT',nodistribution}}}, {子项,未定义,net_sup_dynamic, {erl_distribution,start_link, [["mongooseim_maint_6589@10.0.XXX.XXX", 短名称]]}, 永久,1000,主管, [erl_distribution]}}}
从你写的内容来看,我假设你在构建时更改节点名称,并依靠构建机制来生成正确的配置文件。这没关系。
有鉴于此,您还必须修改rel/files/vm.args
- 找到以下行:
-sname {{node_name}}
并将其更改为:
-name {{node_name}}
现在解释一下。 -name
用于将 Erlang 节点作为分布式节点运行。这需要设置 DNS 服务器。 -sname
还启用了分布式模式,但只使用/etc/hosts
条目就可以了 - 但是,节点名称不能包含点:host@localdomain
很好,但host@my.fictional.domain
不是。后者是你的情况,但你使用数字而不是单词的微小区别。
请注意,使用 -name
的节点不能与使用 -sname
的节点进行分布式 Erlang 通信。
对于生产多节点群集,您可以考虑生成一次服务器版本,获取生成的配置文件,根据需要调整它们,并根据预期的节点数进行复制。然后,每次部署新节点时,都使用相同的生成版本(这样可以节省构建时间),但添加为相关节点自定义的配置文件。