【问题标题】:Erlang cookies in Nitrogen氮气中的二郎饼干
【发布时间】:2012-05-18 07:50:44
【问题描述】:

我正在尝试从氮气调用同一台机器上的单独 Erlang 节点(目前从 Nitrogen 控制台对其进行测试,但最终目标是从 webapp 调用另一个节点)。我在我的主目录中设置了一个.erlang.cookie 文件。

第一次尝试,用erl -name node_a启动另一个节点,然后loading和starting一个应用程序,然后做

nitrogen@127.0.0.1> rpc:call(node_a@mymachine.fully.qualified.host, ps_bc, generate, [arglist]).

给我

{badrpc, nodedown}

在氮气控制台中,并且

=ERROR REPORT==== 9-May-2012::14:25:28 ===
** Connection attempt from disallowed node 'nitrogen@127.0.0.1' ** 

node_a 控制台中。我认为这意味着 Nitrogen 没有读取与 node_a 相同的 cookie 文件。有没有办法手动设置它的cookie?有没有办法让两个节点玩得很好,而不需要为两者设置相同的 cookie?

【问题讨论】:

    标签: erlang rpc nitrogen


    【解决方案1】:

    指定 Erlang cookie 的推荐位置是 etc/vm.args。第一行应该是-setcookie 行。

    工作中有新的文档将正确记录指定 erlang cookie。感谢您指出它实际上没有记录在任何地方。事实上,新文档将包括一个完整的配置设置部分来帮助这种事情。再次感谢!

    目前可以在https://github.com/choptastic/nitrogen_core/blob/config-docs/doc/org-mode/config.org 找到用于配置的“in-the-works”文档(请注意,该文档非常原始)。

    编辑:现在正式记录在这里:http://nitrogenproject.com/doc/config.html

    【讨论】:

      【解决方案2】:

      是的,有一种方法可以为许多 erlang 节点使用相同的 cookie。对于这种情况,您不能对所有节点使用 -setcooke,也不能使用 erlang:setcookie/1。

      我对氮气一无所知,但如果是连接问题,请检查以下内容

      从氮节点

      > node().
      > erlang:get_cookie().
      

      从你的节点

      > node().
      > erlang:get_cookie().
      

      如果 cookie 不同,使用 -setcookie 启动你的节点

      ~$erl -name node_a@127.0.0.1 -setcookie nitrogen_cookie
      

      【讨论】:

        【解决方案3】:

        比我想象的要简单,尽管它似乎没有在脚本代码本身之外的任何地方记录下来; bin/nitrogen 接受 -setcookie 命令行选项,就像 erl 一样。它也接受-name-sname,但两者都不是特别相关。

        使用 bighostkim 的方法告诉我,默认的氮气 cookie 实际上是“nitrogen”,所以另一个(不太安全的)选项是将其他节点的 cookie 设置为相同。

        如果有人想将此作为单独的答案,请继续,以便我可以接受你的(我不能再接受我自己的)。

        【讨论】:

          猜你喜欢
          • 2013-10-02
          • 2010-10-02
          • 2011-02-22
          • 1970-01-01
          • 2013-01-22
          • 2023-03-19
          • 2012-10-09
          • 1970-01-01
          • 2014-06-12
          相关资源
          最近更新 更多