60 lines
1.2 KiB
Nix
60 lines
1.2 KiB
Nix
#
|
|
# Uninterruptable power supply configuration.
|
|
#
|
|
# vim: et:ts=2:sw=2:
|
|
#
|
|
{ pkgs, ... }:
|
|
let
|
|
upspass = "upsaccess";
|
|
in
|
|
{
|
|
# Create a user to run the UPS daemon.
|
|
services.openssh.settings.DenyUsers = [ "ups" ];
|
|
users.users.ups = {
|
|
isSystemUser = true;
|
|
password = upspass;
|
|
group = "ups";
|
|
shell = "/bin/false";
|
|
};
|
|
users.groups.ups = { };
|
|
|
|
power.ups = {
|
|
enable = true;
|
|
upsd.enable = true;
|
|
|
|
users.deprekated = {
|
|
instcmds = [ "all" ];
|
|
actions = [
|
|
"set"
|
|
"fsd"
|
|
];
|
|
upsmon = "primary";
|
|
passwordFile = "${pkgs.writeText "password" upspass}";
|
|
};
|
|
|
|
# Serve a single UPS.
|
|
ups.lix = {
|
|
description = "UPS guarding the TMLLC build server and the Lix build cluster.";
|
|
|
|
driver = "usbhid-ups";
|
|
port = "auto";
|
|
directives = [
|
|
"vendorid = '051D'"
|
|
"productid = '0002'"
|
|
"product = 'Back-UPS NS 1500M2 FW:957.e5 .D USB FW:e5'"
|
|
"serial = '5B2333T55573'"
|
|
"vendor = 'American Power Conversion'"
|
|
"bus = '009'"
|
|
];
|
|
};
|
|
|
|
upsmon = {
|
|
enable = true;
|
|
monitor.lix = {
|
|
powerValue = 1;
|
|
user = "deprekated";
|
|
};
|
|
};
|
|
|
|
};
|
|
}
|