Add NixOS module to control power policy
Reviewed-by: Aleix Roca Nonell <aleix.rocanonell@bsc.es> Reviewed-by: Aleix Boné <abonerib@bsc.es>
This commit is contained in:
parent
142985c505
commit
39a211a846
31
m/module/power-policy.nix
Normal file
31
m/module/power-policy.nix
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.power.policy;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
power.policy = mkOption {
|
||||||
|
type = types.nullOr (types.enum [ "always-on" "previous" "always-off" ]);
|
||||||
|
default = null;
|
||||||
|
description = "Set power policy to use via IPMI.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf (cfg != null) {
|
||||||
|
systemd.services."power-policy" = {
|
||||||
|
description = "Set power policy to use via IPMI";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = "${pkgs.ipmitool}/bin/ipmitool chassis policy ${cfg}";
|
||||||
|
Type = "oneshot";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
StartLimitBurst = "10";
|
||||||
|
StartLimitIntervalSec = "10m";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user