diff options
author | Markus Kowalewski <markus.kowalewski@gmail.com> | 2018-09-15 13:09:36 +0200 |
---|---|---|
committer | Markus Kowalewski <markus.kowalewski@gmail.com> | 2018-10-30 19:50:52 +0100 |
commit | 79c9dbfb40d5123f18ed64485265d8bc19209091 (patch) | |
tree | 6d433e30f896ecc3dff1cd3af62559062dfa8ebd /nixos/modules/services | |
parent | 111d4eb090cdd71b227701842dc67f3bc6dc5f44 (diff) | |
download | nixlib-79c9dbfb40d5123f18ed64485265d8bc19209091.tar nixlib-79c9dbfb40d5123f18ed64485265d8bc19209091.tar.gz nixlib-79c9dbfb40d5123f18ed64485265d8bc19209091.tar.bz2 nixlib-79c9dbfb40d5123f18ed64485265d8bc19209091.tar.lz nixlib-79c9dbfb40d5123f18ed64485265d8bc19209091.tar.xz nixlib-79c9dbfb40d5123f18ed64485265d8bc19209091.tar.zst nixlib-79c9dbfb40d5123f18ed64485265d8bc19209091.zip |
nixos/slurm: add slurmdbd to module
* New options "services.slurm.dbdserver.[enable,config]" * Add slurmdbd to test slurm.nix
Diffstat (limited to 'nixos/modules/services')
-rw-r--r-- | nixos/modules/services/computing/slurm/slurm.nix | 55 |
1 files changed, 53 insertions, 2 deletions
diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix index 9dbb6a4d0d93..77b9c40577a3 100644 --- a/nixos/modules/services/computing/slurm/slurm.nix +++ b/nixos/modules/services/computing/slurm/slurm.nix @@ -29,12 +29,19 @@ let ${cfg.extraPlugstackConfig} ''; - cgroupConfig = pkgs.writeTextDir "cgroup.conf" '' ${cfg.extraCgroupConfig} ''; + slurmdbdConf = pkgs.writeTextDir "slurmdbd.conf" + '' + DbdHost=${cfg.dbdserver.dbdHost} + SlurmUser=${cfg.user} + StorageType=accounting_storage/mysql + ${cfg.dbdserver.extraConfig} + ''; + # slurm expects some additional config files to be # in the same directory as slurm.conf etcSlurm = pkgs.symlinkJoin { @@ -65,6 +72,27 @@ in }; }; + dbdserver = { + enable = mkEnableOption "SlurmDBD service"; + + dbdHost = mkOption { + type = types.str; + default = config.networking.hostName; + description = '' + Hostname of the machine where <literal>slurmdbd</literal> + is running (i.e. name returned by <literal>hostname -s</literal>). + ''; + }; + + extraConfig = mkOption { + type = types.lines; + default = ""; + description = '' + Extra configuration for <literal>slurmdbd.conf</literal> + ''; + }; + }; + client = { enable = mkEnableOption "slurm client daemon"; }; @@ -208,6 +236,8 @@ in used when <literal>procTrackType=proctrack/cgroup</literal>. ''; }; + + }; }; @@ -244,7 +274,10 @@ in ''; }; - in mkIf (cfg.enableStools || cfg.client.enable || cfg.server.enable) { + in mkIf ( cfg.enableStools || + cfg.client.enable || + cfg.server.enable || + cfg.dbdserver.enable ) { environment.systemPackages = [ wrappedSlurm ]; @@ -301,6 +334,24 @@ in ''; }; + systemd.services.slurmdbd = mkIf (cfg.dbdserver.enable) { + path = with pkgs; [ wrappedSlurm munge coreutils ]; + + wantedBy = [ "multi-user.target" ]; + after = [ "network.target" "munged.service" "mysql.service" ]; + requires = [ "munged.service" "mysql.service" ]; + + # slurm strips the last component off the path + environment.SLURM_CONF = "${slurmdbdConf}/slurm.conf"; + + serviceConfig = { + Type = "forking"; + ExecStart = "${cfg.package}/bin/slurmdbd"; + PIDFile = "/run/slurmdbd.pid"; + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + }; + }; + }; } |