diff options
author | Jaka Hudoklin <jakahudoklin@gmail.com> | 2014-03-10 11:10:32 +0100 |
---|---|---|
committer | Bjørn Forsman <bjorn.forsman@gmail.com> | 2014-03-29 10:56:07 +0100 |
commit | 227997d8cab68c3305da72cd48e425da36233936 (patch) | |
tree | d13ba20a7a2686215fbfa8401d82b58b804f6a5c /nixos/modules/services/amqp | |
parent | c23464672ec9be77b03abb8a4dec72324dcfee22 (diff) | |
download | nixlib-227997d8cab68c3305da72cd48e425da36233936.tar nixlib-227997d8cab68c3305da72cd48e425da36233936.tar.gz nixlib-227997d8cab68c3305da72cd48e425da36233936.tar.bz2 nixlib-227997d8cab68c3305da72cd48e425da36233936.tar.lz nixlib-227997d8cab68c3305da72cd48e425da36233936.tar.xz nixlib-227997d8cab68c3305da72cd48e425da36233936.tar.zst nixlib-227997d8cab68c3305da72cd48e425da36233936.zip |
nixos/rabbitmq: rewrite
- rewrite from old jobs options to new services - add simple test - add dataDir option
Diffstat (limited to 'nixos/modules/services/amqp')
-rw-r--r-- | nixos/modules/services/amqp/rabbitmq.nix | 69 |
1 files changed, 32 insertions, 37 deletions
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix index 696b5ad43797..dc1a68aefbbf 100644 --- a/nixos/modules/services/amqp/rabbitmq.nix +++ b/nixos/modules/services/amqp/rabbitmq.nix @@ -3,20 +3,11 @@ with pkgs.lib; let - cfg = config.services.rabbitmq; - run = cmd: "${pkgs.sudo}/bin/sudo -E -u rabbitmq ${cmd}"; - -in - -{ - - +in { ###### interface - options = { - services.rabbitmq = { enable = mkOption { @@ -40,55 +31,59 @@ in ''; }; - }; + dataDir = mkOption { + type = types.path; + default = "/var/lib/rabbitmq"; + description = '' + Data directory for rabbitmq. + ''; + }; + + }; }; ###### implementation - config = mkIf cfg.enable { environment.systemPackages = [ pkgs.rabbitmq_server ]; users.extraUsers.rabbitmq = { description = "RabbitMQ server user"; - home = "/var/empty"; + home = "${cfg.dataDir}"; group = "rabbitmq"; uid = config.ids.uids.rabbitmq; }; users.extraGroups.rabbitmq.gid = config.ids.gids.rabbitmq; - jobs.rabbitmq = { - description = "RabbitMQ server"; - - startOn = "started network-interfaces"; + systemd.services.rabbitmq = { + description = "RabbitMQ Server"; - preStart = - '' - mkdir -m 0700 -p /var/lib/rabbitmq - chown rabbitmq /var/lib/rabbitmq + wantedBy = [ "multi-user.target" ]; + after = [ "network-interfaces.target" ]; - mkdir -m 0700 -p /var/log/rabbitmq - chown rabbitmq /var/log/rabbitmq - ''; - - environment.HOME = "/var/lib/rabbitmq"; - environment.RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; - environment.SYS_PREFIX = ""; - - exec = - '' - ${run "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"} - ''; + environment = { + RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia"; + RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; + RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false"; + SYS_PREFIX = ""; + }; - preStop = - '' - ${run "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop"} - ''; + serviceConfig = { + ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"; + User = "rabbitmq"; + Group = "rabbitmq"; + PermissionsStartOnly = true; }; + preStart = '' + mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir} + if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi + ''; + }; + }; } |