puppet-rabbitmq icon indicating copy to clipboard operation
puppet-rabbitmq copied to clipboard

module does not properly handle erlang_secret

Open KlavsKlavsen opened this issue 5 years ago • 0 comments

  • Puppet: puppet 4.10
  • Ruby: (part of puppet package)
  • Distribution: Ubuntu 18.04 (but puppet from puppet repo)
  • Module version: 9.0.0

How to reproduce (e.g Puppet code you use)

class { 'rabbitmq':
  config_cluster            => true,
  admin_enable           => false, 
  management_enable => false,
  cluster_nodes           => ['server1.example.idk','server2.example.idk','server3.example.idk'],
  cluster_node_type     => 'disk',
  erlang_cookie           => $cluster_secret,
  wipe_db_on_cookie_change => true,
}

where $cluster_secret is something invalid (like having a " in it or a newline..)

What are you seeing

% This file managed by Puppet
% Template Path: rabbitmq/templates/rabbitmq.config
[
  {rabbit, [
    {loopback_users, [<<"guest">>]},
    {cluster_nodes, {['[email protected]', '[email protected]', '[email protected]'], disk}},
    {cluster_partition_handling, ignore},
    {tcp_listen_options, [
         {backlog,       128},
         {nodelay,       true},
         {linger,        {true, 0}},
         {exit_on_close, false}
    ]},
    {default_user, <<"guest">>},
    {default_pass, <<"guest">>}
  ]},
  {kernel, [

  ]}
].
% EOF

puppet gets this from rabbitmq-server service:

Mar 29 13:22:55 p-sentry-rabbitmq03.example.idk systemd[1]: Starting RabbitMQ Messaging Server...
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk systemd[1]: rabbitmq-server.service: Main process exited, code=exited, status=1/FAILURE
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]: Error: Failed to initialize erlang distribution: {{shutdown,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                    {failed_to_start_child,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                     auth,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                     {system_limit,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                      [{erlang,list_to_atom,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        ["venivPiakKebrepchadcybelErAwtOfAryomHathVopdoyChadjajyoybrIdCimcoowcernEndObwuotorfOvotinkyunovyacGaFidtywerdyutsosatNujAmOcuvDecdashmewWaxBidkeHegogtibJeatEsyumhocjakHocvuckemancezNuep\"OvLibsojIdBaydDrebAvEsokKidseimWialrargicorfyortAcigjord9ocMedFedminyeifyebtiticmeidWyusEilbilAjIthyujidyuanFiashkGeyqueijBagPyajOlWaygyatPoksoybByhoiddOyRyevIjexEcColCejrefovGancocdeacMajSichTarOoHuBasfechfoajPal7CromFimakwudEmnibGacObpoadecCyuHofhedhojemNatdirdyeoftitJeikOwvOojsahelivEfsAgbyerfitIjOtjebyatyiattlapizVafAjBaftakVakIposmujBaujShiWeufEncehiuvDawsyibAmAsewHeksyewEvbocdoatGianjavpaymyaykGonnyatgig"],
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        []},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                       {auth,init_cookie,0,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        [{file,"auth.erl"},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                         {line,288}]},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                       {auth,init,1,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        [{file,"auth.erl"},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                         {line,140}]},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                       {gen_server,init_it,2,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        [{file,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                          "gen_server.erl"},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                         {line,365}]},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                       {gen_server,init_it,6,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        [{file,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                          "gen_server.erl"},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                         {line,333}]},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                       {proc_lib,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        init_p_do_apply,3,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                        [{file,"proc_lib.erl"},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                         {line,247}]}]}}},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                   {child,undefined,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                    net_sup_dynamic,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                    {erl_distribution,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                     start_link,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                     [['rabbitmq-cli-67',
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                       shortnames],
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                      false]},
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                    permanent,1000,supervisor,
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk rabbitmq[21516]:                                                    [erl_distribution]}}.
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk systemd[1]: rabbitmq-server.service: Control process exited, code=exited status=75
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk systemd[1]: rabbitmq-server.service: Failed with result 'exit-code'.
Mar 29 13:22:56 p-sentry-rabbitmq03.example.idk systemd[1]: Failed to start RabbitMQ Messaging Server.
Mar 29 13:26:17 p-sentry-rabbitmq03.example.idk systemd[1]: Starting RabbitMQ Messaging Server...
Mar 29 13:26:18 p-sentry-rabbitmq03.example.idk rabbitmq[22616]: Waiting for 'rabbit@p-sentry-rabbitmq03'
Mar 29 13:26:18 p-sentry-rabbitmq03.example.idk rabbitmq[22616]: pid is 22633
Mar 29 13:26:20 p-sentry-rabbitmq03.example.idk systemd[1]: Started RabbitMQ Messaging Server.
Mar 29 13:26:21 p-sentry-rabbitmq03.example.idk systemd[1]: Stopping RabbitMQ Messaging Server...

If I change the cookie to something valid it still fails (and logs above shows old cookie).. If I then "rm -f /etc/rabbitmq/rabbitmq.config" - and start service - it starts fine. I can then run puppet - which recreates rabbitmq.config file - and now rabbitmq-server starts just fine..

This entire problem would be avoided, by simply validating erlang_cookie is valid.. I'll do a PR for it soon.. but it also seems to indicate that changing the erlang_cookie using this module - does not actually make it take affect.. for some odd reason.. ?

KlavsKlavsen avatar Mar 29 '19 12:03 KlavsKlavsen