diff options
| author | wrobell <wrobell@riseup.net> | 2026-06-14 17:57:57 +0100 |
|---|---|---|
| committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2026-06-28 23:38:21 +0100 |
| commit | bfb35abf16bb4aa52b143dd1eb31ddef16898b37 (patch) | |
| tree | 7cf18943cc25ccde62a98cd0c81d1e0e11d62e4a /doc | |
| parent | 2983d36030ba74037667b28012c76d4bf35e459f (diff) | |
services: Update rabbitmq service
Update RabbitMQ default configuration to use localhost interface by
default and avoid listening on public interfaces.
Change the default configuration file to set inter-node communication
listener to localhost network interface (see also
https://www.rabbitmq.com/docs/networking#distribution). This requires
setting RabbitMQ node name to `rabbit@localhost`, so introduce
`node-name` RabbitMQ configuration field with such default value.
Path to the RabbitMQ environment configuration file was hardcoded.
Remove the hardcoding and allow to create such file with env-config-file
RabbitMQ configuration field.
Add new RabbitMQ service tests to check RabbitMQ broker startup and
status after the service is started.
* gnu/services/high-availability.scm (<rabbitmq-configuration>)
[<node-name>, <env-config-file>]: New fields.
(rabbitmq-shepherd-service): Use them.
(%default-rabbitmq-config-file): Update.
* gnu/tests/high-availability.scm (run-rabbitmq-test): Add new tests.
* doc/gnu.texi (High Availability Services): Document new fields and
provide information about local interfaces.
Merges: guix/guix!9360
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Diffstat (limited to 'doc')
| -rw-r--r-- | doc/guix.texi | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index c349ffc6d33..7f587d73a9a 100644 --- a/doc/guix.texi +++ b/doc/guix.texi | |||
| @@ -143,7 +143,7 @@ Copyright @copyright{} 2025 Zacchaeus@* | |||
| 143 | Copyright @copyright{} 2025, 2026 Sergio Pastor Pérez@* | 143 | Copyright @copyright{} 2025, 2026 Sergio Pastor Pérez@* |
| 144 | Copyright @copyright{} 2024 Evgeny Pisemsky@* | 144 | Copyright @copyright{} 2024 Evgeny Pisemsky@* |
| 145 | Copyright @copyright{} 2025 jgart@* | 145 | Copyright @copyright{} 2025 jgart@* |
| 146 | Copyright @copyright{} 2025 Artur Wroblewski@* | 146 | Copyright @copyright{} 2025-2026 Artur Wroblewski@* |
| 147 | Copyright @copyright{} 2025 Edouard Klein@* | 147 | Copyright @copyright{} 2025 Edouard Klein@* |
| 148 | Copyright @copyright{} 2025 Rodion Goritskov@* | 148 | Copyright @copyright{} 2025 Rodion Goritskov@* |
| 149 | Copyright @copyright{} 2025 dan@* | 149 | Copyright @copyright{} 2025 dan@* |
| @@ -37654,24 +37654,24 @@ A simple example configuration is given below. | |||
| 37654 | @lisp | 37654 | @lisp |
| 37655 | (service rabbitmq-service-type | 37655 | (service rabbitmq-service-type |
| 37656 | (rabbitmq-configuration | 37656 | (rabbitmq-configuration |
| 37657 | (rabbitmq-configuration | 37657 | (plugins '("rabbitmq_stream" |
| 37658 | (plugins '("rabbitmq_stream" | 37658 | "rabbitmq_management" |
| 37659 | "rabbitmq_management" | 37659 | "rabbitmq_prometheus")))) |
| 37660 | "rabbitmq_prometheus"))))) | ||
| 37661 | @end lisp | 37660 | @end lisp |
| 37662 | @end defvar | ||
| 37663 | 37661 | ||
| 37664 | At startup, RabbitMQ broker logs its initialization messages into | 37662 | At startup, RabbitMQ broker logs its initialization messages into |
| 37665 | @file{/var/log/messages} file. Once running, the logging messages can be | 37663 | @file{/var/log/messages} file. Once running, the logging messages can be |
| 37666 | found in a logging file of a RabbitMQ node in @file{/var/log/rabbitmq} | 37664 | found in a logging file of a RabbitMQ node in @file{/var/log/rabbitmq} |
| 37667 | directory. | 37665 | directory. |
| 37668 | 37666 | ||
| 37669 | @quotation Note | 37667 | @quotation Warning |
| 37670 | The default configuration of the RabbitMQ service enables the RabbitMQ | 37668 | The default configuration of the RabbitMQ service enables the RabbitMQ |
| 37671 | broker to accept connections only on loopback interfaces. However, | 37669 | broker to accept connections only on loopback interfaces. However, |
| 37672 | enabling certain plugins may open ports on all network interfaces. See | 37670 | enabling certain plugins may open ports on all network interfaces. See |
| 37673 | also @url{https://www.rabbitmq.com/docs/networking#ports, RabbitMQ Port Access}. | 37671 | also @url{https://www.rabbitmq.com/docs/networking#ports, RabbitMQ Port |
| 37672 | Access}. | ||
| 37674 | @end quotation | 37673 | @end quotation |
| 37674 | @end defvar | ||
| 37675 | 37675 | ||
| 37676 | @deftp {Data Type} rabbitmq-configuration | 37676 | @deftp {Data Type} rabbitmq-configuration |
| 37677 | This data type represents the configuration for RabbitMQ. | 37677 | This data type represents the configuration for RabbitMQ. |
| @@ -37680,10 +37680,23 @@ This data type represents the configuration for RabbitMQ. | |||
| 37680 | @item @code{rabbitmq} (default: @code{rabbitmq}) | 37680 | @item @code{rabbitmq} (default: @code{rabbitmq}) |
| 37681 | The RabbitMQ package to use. | 37681 | The RabbitMQ package to use. |
| 37682 | 37682 | ||
| 37683 | @item @code{node-name} (default: @code{"rabbit@@localhost"}) | ||
| 37684 | Node name of a RabbitMQ broker instance. See also | ||
| 37685 | @url{https://www.rabbitmq.com/docs/clustering#node-names, RabbitMQ Node | ||
| 37686 | Names}. | ||
| 37687 | |||
| 37683 | @item @code{config-file} (default: @code{%default-rabbitmq-config-file}) | 37688 | @item @code{config-file} (default: @code{%default-rabbitmq-config-file}) |
| 37684 | Configuration file for the RabbitMQ broker. See also | 37689 | Configuration file for the RabbitMQ broker. See also |
| 37685 | @url{https://www.rabbitmq.com/docs/configure, RabbitMQ Configuration}. | 37690 | @url{https://www.rabbitmq.com/docs/configure, RabbitMQ Configuration}. |
| 37686 | 37691 | ||
| 37692 | @item @code{env-config-file} (default: @code{#f}) | ||
| 37693 | Environment configuration file for the RabbitMQ broker. | ||
| 37694 | |||
| 37695 | Set RabbitMQ environment variables, for example Erlang parameters, node | ||
| 37696 | name, or configuration file location, using @code{variable=value} format. | ||
| 37697 | Each variable name without @code{RABBITMQ_} prefix. See also | ||
| 37698 | @url{https://www.rabbitmq.com/docs/configure, RabbitMQ Configuration}. | ||
| 37699 | |||
| 37687 | @item @code{data-directory} (default: @code{"/var/lib/rabbitmq/data"}) | 37700 | @item @code{data-directory} (default: @code{"/var/lib/rabbitmq/data"}) |
| 37688 | Directory with RabbitMQ broker data - a schema database, message stores, | 37701 | Directory with RabbitMQ broker data - a schema database, message stores, |
| 37689 | cluster member information, and other persistent node state. | 37702 | cluster member information, and other persistent node state. |
| @@ -37691,7 +37704,6 @@ cluster member information, and other persistent node state. | |||
| 37691 | @item @code{plugins} (default: @code{'()}) | 37704 | @item @code{plugins} (default: @code{'()}) |
| 37692 | A list of RabbitMQ plugins to enable. View all available plugins using | 37705 | A list of RabbitMQ plugins to enable. View all available plugins using |
| 37693 | the @command{rabbitmq-plugins list} command. | 37706 | the @command{rabbitmq-plugins list} command. |
| 37694 | |||
| 37695 | @end table | 37707 | @end table |
| 37696 | @end deftp | 37708 | @end deftp |
| 37697 | 37709 | ||
