slurm-spank-x11: init at 0.2.5
This commit is contained in:
parent
8fd86b86eb
commit
85ca8f121b
@ -6,14 +6,20 @@ let
|
||||
|
||||
cfg = config.services.slurm;
|
||||
# configuration file can be generated by http://slurm.schedmd.com/configurator.html
|
||||
configFile = pkgs.writeText "slurm.conf"
|
||||
configFile = pkgs.writeText "slurm.conf"
|
||||
''
|
||||
${optionalString (cfg.controlMachine != null) ''controlMachine=${cfg.controlMachine}''}
|
||||
${optionalString (cfg.controlAddr != null) ''controlAddr=${cfg.controlAddr}''}
|
||||
${optionalString (cfg.nodeName != null) ''nodeName=${cfg.nodeName}''}
|
||||
${optionalString (cfg.partitionName != null) ''partitionName=${cfg.partitionName}''}
|
||||
PlugStackConfig=${plugStackConfig}
|
||||
${cfg.extraConfig}
|
||||
'';
|
||||
|
||||
plugStackConfig = pkgs.writeText "plugstack.conf"
|
||||
''
|
||||
${optionalString cfg.enableSrunX11 ''optional ${pkgs.slurm-spank-x11}/lib/x11.so''}
|
||||
'';
|
||||
in
|
||||
|
||||
{
|
||||
@ -28,7 +34,7 @@ in
|
||||
enable = mkEnableOption "slurm control daemon";
|
||||
|
||||
};
|
||||
|
||||
|
||||
client = {
|
||||
enable = mkEnableOption "slurm rlient daemon";
|
||||
|
||||
@ -86,8 +92,19 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
enableSrunX11 = mkOption {
|
||||
default = false;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
If enabled srun will accept the option "--x11" to allow for X11 forwarding
|
||||
from within an interactive session or a batch job. This activates the
|
||||
slurm-spank-x11 module. Note that this requires 'services.openssh.forwardX11'
|
||||
to be enabled on the compute nodes.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
default = "";
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = ''
|
||||
Extra configuration options that will be added verbatim at
|
||||
@ -134,7 +151,8 @@ in
|
||||
environment.systemPackages = [ wrappedSlurm ];
|
||||
|
||||
systemd.services.slurmd = mkIf (cfg.client.enable) {
|
||||
path = with pkgs; [ wrappedSlurm coreutils ];
|
||||
path = with pkgs; [ wrappedSlurm coreutils ]
|
||||
++ lib.optional cfg.enableSrunX11 slurm-spank-x11;
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "systemd-tmpfiles-clean.service" ];
|
||||
@ -152,8 +170,9 @@ in
|
||||
};
|
||||
|
||||
systemd.services.slurmctld = mkIf (cfg.server.enable) {
|
||||
path = with pkgs; [ wrappedSlurm munge coreutils ];
|
||||
|
||||
path = with pkgs; [ wrappedSlurm munge coreutils ]
|
||||
++ lib.optional cfg.enableSrunX11 slurm-spank-x11;
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" "munged.service" ];
|
||||
requires = [ "munged.service" ];
|
||||
|
39
pkgs/servers/computing/slurm-spank-x11/default.nix
Normal file
39
pkgs/servers/computing/slurm-spank-x11/default.nix
Normal file
@ -0,0 +1,39 @@
|
||||
{ stdenv, fetchFromGitHub, slurm } :
|
||||
let
|
||||
version = "0.2.5";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "slurm-spank-x11-${version}";
|
||||
version = version;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hautreux";
|
||||
repo = "slurm-spank-x11";
|
||||
rev = version;
|
||||
sha256 = "1dmsr7whxcxwnlvl1x4s3bqr5cr6q5ssb28vqi67w5hj4sshisry";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
gcc -DX11_LIBEXEC_PROG="\"$out/bin/slurm-spank-x11\"" \
|
||||
-g -o slurm-spank-x11 slurm-spank-x11.c
|
||||
gcc -I${slurm.dev}/include -DX11_LIBEXEC_PROG="\"$out/bin/slurm-spank-x11\"" -shared -fPIC \
|
||||
-g -o x11.so slurm-spank-x11-plug.c
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p $out/bin $out/lib
|
||||
install -m 755 slurm-spank-x11 $out/bin
|
||||
install -m 755 x11.so $out/lib
|
||||
'';
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = https://github.com/hautreux/slurm-spank-x11;
|
||||
description = "Plugin for SLURM to allow for interactive X11 sessions";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ markuskowa ];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
@ -12394,6 +12394,8 @@ with pkgs;
|
||||
slurm-full = appendToName "full" (callPackage ../servers/computing/slurm { });
|
||||
slurm-llnl-full = slurm-full; # renamed July 2017
|
||||
|
||||
slurm-spank-x11 = callPackage ../servers/computing/slurm-spank-x11 { };
|
||||
|
||||
systemd-journal2gelf = callPackage ../tools/system/systemd-journal2gelf { };
|
||||
|
||||
inherit (callPackages ../servers/http/tomcat { })
|
||||
|
Loading…
Reference in New Issue
Block a user