我正在尝试将mongooseim的节点名称更改为我的本地IP,类似于10.0.0.21。我更改了MongooseIM / rel / vars.config中的配置。>
{node_name,“mongooseim@10.0.0.21”}
我需要改变什么吗?
当我更改节点名称时,我收到以下错误
= INFO REPORT ==== 2016年3月11日:: 17:11:05 === 无法设置短节点名称! 请检查您的配置 escript:异常错误:右侧值不匹配 {错误, {{关掉, {failed_to_start_child,net_kernel, { '退出',nodistribution}}}, {孩子,不确定,net_sup_dynamic, {erl_distribution,START_LINK, [[ 'mongooseim_maint_6589@10.0.XXX.XXX', 简短名字]]}, 永久,1000,监事, [erl_distribution]}}}
答案 0 :(得分:1)
根据您的编写,我假设您在构建时更改节点名称并依赖构建机制来生成正确的配置文件。这没关系。
有鉴于此,您还必须修改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通信。
对于生产多节点群集,您可以考虑生成一次服务器版本,获取生成的配置文件,根据需要调整它们,并根据预期的节点数量进行复制。然后,每次部署新节点时,都使用相同的生成版本(可节省构建时间),但添加为相关节点自定义的配置文件。