Added TORQUE package and nixos module
Resource management system for submitting and controlling jobs on supercomputers, clusters, and grids http://www.adaptivecomputing.com/products/open-source/torque
This commit is contained in:
parent
e84b0c94f0
commit
ac724e7bbc
@ -95,6 +95,8 @@
|
|||||||
./services/backup/rsnapshot.nix
|
./services/backup/rsnapshot.nix
|
||||||
./services/backup/sitecopy-backup.nix
|
./services/backup/sitecopy-backup.nix
|
||||||
./services/backup/tarsnap.nix
|
./services/backup/tarsnap.nix
|
||||||
|
./services/computing/torque/server.nix
|
||||||
|
./services/computing/torque/mom.nix
|
||||||
./services/continuous-integration/jenkins/default.nix
|
./services/continuous-integration/jenkins/default.nix
|
||||||
./services/continuous-integration/jenkins/slave.nix
|
./services/continuous-integration/jenkins/slave.nix
|
||||||
./services/databases/4store-endpoint.nix
|
./services/databases/4store-endpoint.nix
|
||||||
|
63
nixos/modules/services/computing/torque/mom.nix
Normal file
63
nixos/modules/services/computing/torque/mom.nix
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
|
||||||
|
cfg = config.services.torque.mom;
|
||||||
|
torque = pkgs.torque;
|
||||||
|
|
||||||
|
momConfig = pkgs.writeText "torque-mom-config" ''
|
||||||
|
$pbsserver ${cfg.serverNode}
|
||||||
|
$logevent 225
|
||||||
|
'';
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.torque.mom = {
|
||||||
|
enable = mkEnableOption "torque computing node";
|
||||||
|
|
||||||
|
serverNode = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "Hostname running pbs server.";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ pkgs.torque ];
|
||||||
|
|
||||||
|
systemd.services.torque-mom-init = {
|
||||||
|
path = with pkgs; [ torque utillinux procps inetutils ];
|
||||||
|
|
||||||
|
script = ''
|
||||||
|
pbs_mkdirs -v aux
|
||||||
|
pbs_mkdirs -v mom
|
||||||
|
hostname > /var/spool/torque/server_name
|
||||||
|
cp -v ${momConfig} /var/spool/torque/mom_priv/config
|
||||||
|
'';
|
||||||
|
|
||||||
|
serviceConfig.Type = "oneshot";
|
||||||
|
unitConfig.ConditionPathExists = "!/var/spool/torque";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.torque-mom = {
|
||||||
|
path = [ torque ];
|
||||||
|
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
requires = [ "torque-mom-init.service" ];
|
||||||
|
after = [ "torque-mom-init.service" "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
|
ExecStart = "${torque}/bin/pbs_mom";
|
||||||
|
PIDFile = "/var/spool/torque/mom_priv/mom.lock";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
96
nixos/modules/services/computing/torque/server.nix
Normal file
96
nixos/modules/services/computing/torque/server.nix
Normal file
@ -0,0 +1,96 @@
|
|||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.services.torque.server;
|
||||||
|
torque = pkgs.torque;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.torque.server = {
|
||||||
|
|
||||||
|
enable = mkEnableOption "torque server";
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ pkgs.torque ];
|
||||||
|
|
||||||
|
systemd.services.torque-server-init = {
|
||||||
|
path = with pkgs; [ torque utillinux procps inetutils ];
|
||||||
|
|
||||||
|
script = ''
|
||||||
|
tmpsetup=$(mktemp -t torque-XXXX)
|
||||||
|
cp -p ${torque}/bin/torque.setup $tmpsetup
|
||||||
|
sed -i $tmpsetup -e 's/pbs_server -t create/pbs_server -f -t create/'
|
||||||
|
|
||||||
|
pbs_mkdirs -v aux
|
||||||
|
pbs_mkdirs -v server
|
||||||
|
hostname > /var/spool/torque/server_name
|
||||||
|
cp -prv ${torque}/var/spool/torque/* /var/spool/torque/
|
||||||
|
$tmpsetup root
|
||||||
|
|
||||||
|
sleep 1
|
||||||
|
rm -f $tmpsetup
|
||||||
|
kill $(pgrep pbs_server) 2>/dev/null
|
||||||
|
kill $(pgrep trqauthd) 2>/dev/null
|
||||||
|
'';
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
unitConfig = {
|
||||||
|
ConditionPathExists = "!/var/spool/torque";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.trqauthd = {
|
||||||
|
path = [ torque ];
|
||||||
|
|
||||||
|
requires = [ "torque-server-init.service" ];
|
||||||
|
after = [ "torque-server-init.service" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
|
ExecStart = "${torque}/bin/trqauthd";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.torque-server = {
|
||||||
|
path = [ torque ];
|
||||||
|
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
wants = [ "torque-scheduler.service" "trqauthd.service" ];
|
||||||
|
before = [ "trqauthd.service" ];
|
||||||
|
requires = [ "torque-server-init.service" ];
|
||||||
|
after = [ "torque-server-init.service" "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
|
ExecStart = "${torque}/bin/pbs_server";
|
||||||
|
ExecStop = "${torque}/bin/qterm";
|
||||||
|
PIDFile = "/var/spool/torque/server_priv/server.lock";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.torque-scheduler = {
|
||||||
|
path = [ torque ];
|
||||||
|
|
||||||
|
requires = [ "torque-server-init.service" ];
|
||||||
|
after = [ "torque-server-init.service" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "forking";
|
||||||
|
ExecStart = "${torque}/bin/pbs_sched";
|
||||||
|
PIDFile = "/var/spool/torque/sched_priv/sched.lock";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
41
pkgs/servers/computing/torque/default.nix
Normal file
41
pkgs/servers/computing/torque/default.nix
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
{ stdenv, fetchurl, openssl, flex, bison, pkgconfig, groff, libxml2, utillinux }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
name = "torque-4.2.8";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
name = "${name}.tar.gz";
|
||||||
|
url = "http://www.adaptivecomputing.com/index.php?wpfb_dl=2730";
|
||||||
|
sha256 = "1sjpvndzm9ccdmfwdf9887ppmapawfsh5qdkzr92kadg5jxp796j";
|
||||||
|
};
|
||||||
|
|
||||||
|
buildInputs = [ openssl flex bison pkgconfig groff libxml2 utillinux ];
|
||||||
|
|
||||||
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
preConfigure = ''
|
||||||
|
for s in fifo cray_t3e dec_cluster msic_cluster sgi_origin umn_cluster; do
|
||||||
|
substituteInPlace src/scheduler.cc/samples/$s/Makefile.in \
|
||||||
|
--replace "schedprivdir = " "schedprivdir = $out/"
|
||||||
|
done
|
||||||
|
|
||||||
|
for f in $(find ./ -name Makefile.in); do
|
||||||
|
echo patching $f...
|
||||||
|
sed -i $f -e '/PBS_MKDIRS/d'
|
||||||
|
done
|
||||||
|
'';
|
||||||
|
|
||||||
|
postInstall = ''
|
||||||
|
mv $out/sbin/* $out/bin/
|
||||||
|
rmdir $out/sbin
|
||||||
|
cp -v buildutils/pbs_mkdirs $out/bin/
|
||||||
|
cp -v torque.setup $out/bin/
|
||||||
|
chmod +x $out/bin/pbs_mkdirs $out/bin/torque.setup
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = with stdenv.lib; {
|
||||||
|
homepage = http://www.adaptivecomputing.com/products/open-source/torque;
|
||||||
|
description = "Resource management system for submitting and controlling jobs on supercomputers, clusters, and grids";
|
||||||
|
platforms = platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
@ -7204,6 +7204,8 @@ let
|
|||||||
tomcat8 = callPackage ../servers/http/tomcat/8.0.nix { };
|
tomcat8 = callPackage ../servers/http/tomcat/8.0.nix { };
|
||||||
|
|
||||||
tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
|
tomcat_mysql_jdbc = callPackage ../servers/http/tomcat/jdbc/mysql { };
|
||||||
|
|
||||||
|
torque = callPackage ../servers/computing/torque { };
|
||||||
|
|
||||||
axis2 = callPackage ../servers/http/tomcat/axis2 { };
|
axis2 = callPackage ../servers/http/tomcat/axis2 { };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user