Pergunta

Eu tenho um pequeno arquivo eScript que se conecta a um nó e faz algumas chamadas RPC e outras coisas ...

Ele funciona muito bem para o short ou longnames mas depende comms http padrão para distribuição Erlang.

Eu gostaria de usá-lo, mas com https / SSL para distribuição.

Para iniciar um sistema de Erlang 'normal' com SSL você tem que passar nas diversas bandeiras para dizer Erlang para executar dessa forma, como o documentação sugere:

$ ERL_FLAGS="-boot \"/home/me/ssl/start_ssl\" -proto_dist inet_ssl 
  -ssl_dist_opt client_certfile \"/home/me/ssl/erlclient.pem\" 
  -ssl_dist_opt server_certfile \"/home/me/ssl/erlserver.pem\" 
  -ssl_dist_opt verify 1 -ssl_dist_opt depth 1"
$ export ERL_FLAGS
$ erl -sname ssl_test

Este substitui o mecanismo de distribuição padrão (inet_tcp_dist) com o SSL (inet_ssl_dist).

eScript executa um arquivo Erlang como um arquivo shell script.

As minhas perguntas são:

  • é possível obter o Erlang 'ambiente' em que eScript corre para usar o mecanismo de distribuição segura em vez de um padrão?
  • e se sim, como eu faria isso?
Foi útil?

Solução

Você não tem que definir essas bandeiras, através do ambiente, você também pode enviá-los diretamente para erl, consulte ch. 1.4 aqui . bandeiras erl pode ser passado para eScript através da linha de argumento %%!.


z.escript

#!/usr/bin/env escript
%%! -boot start_ssl -proto_dist inet_ssl -ssl_dist_opt client_certfile /home/me/ssl/erlclient.pem -ssl_dist_opt server_certfile /home/me/ssl/erlserver.pem -ssl_dist_opt verify 1 -ssl_dist_opt depth 1
main(_) ->
    io:format("~p~n", [init:get_arguments()]).

zed@zed:~$ ./z.escript 
[{root,["/opt/erlang-R13B03/lib/erlang"]},
 {progname,["erl"]},
 {home,["/home/zed"]},
 {boot,["start_clean"]},
 {noshell,[]},
 {boot,["start_ssl"]},
 {proto_dist,["inet_ssl"]},
 {ssl_dist_opt,["client_certfile","/home/me/ssl/erlclient.pem"]},
 {ssl_dist_opt,["server_certfile","/home/me/ssl/erlserver.pem"]},
 {ssl_dist_opt,["verify","1"]},
 {ssl_dist_opt,["depth","1"]}]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top