2017-01-11 4 views
0

すべてのerlangノードは自分のプライベートアドレスだけをリッスンします。もはやRiakに2 riak.confで可能と思われるアドレスを制限するriak2 listen(カーネル、{inet_dist_use_interface、inet:ip_address()})

{kernel, [   
      {inet_dist_use_interface, {192,168,0,42}}, 

は、任意のアプリケーションパラメータを許可しない:Riakに1で、我々はapp.configに次に似て何かを追加するために使用しました。だから私はvm.argsに打撃を与えた:

-kernel inet_dist_use_interface '{192,168,0,42}' 

、順番に、次のエラーを引き起こしたこと:私はここから進む可能性がどのように

{application_start_failure,             
    riak_core,                 
    {bad_return,                 
    {{riak_core_app,start,[normal,[]]},           
    {'EXIT',                 
     {{function_clause,              
     [{orddict,                
      fetch,                
      [[email protected],              
      [{'[email protected]',            
      [{{riak_control,member_info_version},[v1,v0]},      
       {{riak_core,bucket_types},[true,false]},       
       {{riak_core,fold_req_version},[v2,v1]},       
       {{riak_core,net_ticktime},[true,false]},       
       {{riak_core,resizable_ring},[true,false]},      
       {{riak_core,security},[true,false]},        
       {{riak_core,staged_joins},[true,false]},       
       {{riak_core,vnode_routing},[proxy,legacy]},      
       {{riak_kv,anti_entropy},[enabled_v1,disabled]},     
       {{riak_kv,crdt},             
       [[pncounter,riak_dt_pncounter,riak_dt_orswot,riak_dt_map],  
       [pncounter],             
       []]},               
       {{riak_kv,crdt_epoch_versions},         
       [[{riak_dt_map,2},{riak_dt_orswot,2},{riak_dt_pncounter,2}],  
       [{riak_dt_pncounter,2}]]},          
       {{riak_kv,handoff_data_encoding},[encode_raw,encode_zlib]},  
       {{riak_kv,index_backpressure},[true,false]},      
       {{riak_kv,legacy_keylisting},[false]},       
       {{riak_kv,listkeys_backpressure},[true,false]},     
       {{riak_kv,mapred_2i_pipe},[true,false]},       
       {{riak_kv,mapred_system},[pipe]},         
       {{riak_kv,object_format},[v1,v0]},        
       {{riak_kv,put_fsm_ack_execute},[enabled,disabled]},    
       {{riak_kv,secondary_index_version},[v3,v2,v1]},     
       {{riak_kv,vclock_data_encoding},[encode_zlib,encode_raw]},  
       {{riak_kv,vnode_vclocks},[true,false]},       
       {{riak_pipe,trace_format},[ordsets,sets]}]}]],     
      [{file,"orddict.erl"},{line,72}]},         
     {riak_core_capability,renegotiate_capabilities,1,[{file,"src/riak_core_capability.erl"},{line,441}]}, 
     {riak_core_capability,handle_call,3,[{file,"src/riak_core_capability.erl"},{line,213}]}, 
     {gen_server,handle_msg,5,[{file,"gen_server.erl"},{line,585}]},  
     {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,239}]}]},  
     {gen_server,call,              
     [riak_core_capability,             
     {register,                
      {riak_core,vnode_routing},{capability,               
      [proxy,legacy],              
      legacy,                
      {riak_core,legacy_vnode_routing,[{true,legacy},{false,proxy}]}}}, infinity]}}}}}} 

答えて

1

cuttlefish config toolは、拡張可能なスキーマを使用します。それを回すために

erlang.distribution.interface = 192.168.0.42

をし、翻訳機能:ブロックは以下のようになります。riak.confの設定を定義しますhttps://github.com/basho/cuttlefish/wiki/Cuttlefish-for-Erlang-Developers

で新しい設定を作成する方法のための参照があります4タプルと、このようにapp.configを生成中にそれを挿入します。あなたが、/ usr /リー内の既存の.schemaファイルにこのブロックを追加することができます

{kernel,[{inet_dist_use_interface, {192,168,0,42}}]}

b/riak/lib。 または、アップグレード中に踏ん張られる可能性を減らすために、 "0-my-custom.schema"のような新しいスキーマファイルを作成することができます。

{mapping, "erlang.distribution.interface", "kernel.inet_dist_use_interface", [ 
    {commented, "true"}, 
    {datatype, string}, 
    hidden 
]}. 

{translation, "kernel.inet_dist_use_interface", 
fun(Conf) -> 
    IPStr = cuttlefish:conf_get("erlang.distribution.interface", Conf), 
    list_to_tuple([ list_to_integer(Octet) || Octet <- string:tokens(IPStr,".")]) 
end 
}. 
+0

こんにちは。素晴らしい答え。それは確かにそれを行います。どのように私はイカのスキーマを見逃していた可能性がありますか?どうもありがとう! –

関連する問題