diff options
| author | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2021-08-11 15:30:52 +0200 |
|---|---|---|
| committer | Jean-Sébastien Pédron <jean-sebastien@rabbitmq.com> | 2021-08-11 15:50:40 +0200 |
| commit | bd39027d68e919ee2b757a6a0d793903cb3122e8 (patch) | |
| tree | a0a6ad5f4d835a7b4cf6f915890bb5ef8edc63c9 | |
| parent | 46b8321bd9fd1933c5b4fae75ffcc5abb72634c7 (diff) | |
| download | rabbitmq-server-git-bd39027d68e919ee2b757a6a0d793903cb3122e8.tar.gz | |
Add support for $RABBITMQ_ERLANG_COOKIE env var
It is the equivalent of the content of the Erlang cookie file. Note this
variable IS the cookie value, NOT the path to a cookie file.
If it is set, it will take precedence over the content of the Erlang
cookie file.
Fixes docker-library/rabbitmq#508.
| -rw-r--r-- | deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl index 1fac389775..d6046a3ccd 100644 --- a/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl +++ b/deps/rabbit/apps/rabbitmq_prelaunch/src/rabbit_prelaunch_dist.erl @@ -1,5 +1,6 @@ -module(rabbit_prelaunch_dist). +-include_lib("eunit/include/eunit.hrl"). -include_lib("kernel/include/logger.hrl"). -include_lib("rabbit_common/include/logging.hrl"). @@ -33,7 +34,9 @@ setup(#{nodename := Node, nodename_type := NameType} = Context) -> end, ok. -do_setup(#{nodename := Node, nodename_type := NameType}) -> +do_setup(#{nodename := Node, + nodename_type := NameType, + var_origins := Origins} = Config) -> ?LOG_DEBUG( "Starting Erlang distribution", #{domain => ?RMQLOG_DOMAIN_PRELAUNCH}), @@ -49,6 +52,19 @@ do_setup(#{nodename := Node, nodename_type := NameType}) -> {ok, _} = net_kernel:start([Node, NameType]), ok end, + + %% Override the Erlang cookie if one was set in the environment. + case maps:get(erlang_cookie, Origins, default) of + environment -> + ?LOG_DEBUG( + "Override Erlang cookie using the one set in the environment", + #{domain => ?RMQLOG_DOMAIN_PRELAUNCH}), + Cookie = maps:get(erlang_cookie, Config), + ?assert(is_atom(Cookie)), + true = erlang:set_cookie(node(), Cookie); + _ -> + ok + end, ok. %% Check whether a node with the same name is already running |
