feat(etna): add ups
This commit is contained in:
parent
d84169a8ce
commit
efec23d7c6
4 changed files with 85 additions and 0 deletions
13
secrets/etna/upsdUserPass.age
Normal file
13
secrets/etna/upsdUserPass.age
Normal file
|
@ -0,0 +1,13 @@
|
|||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiaFE3Nm5oOVFHTXhPU2lL
|
||||
TUFFMW1DeE5nVVlzYmZTQVhvY3VYMDM4TUNNCnpkZVRzRHB5aFpZalVXU3g0OXRU
|
||||
d3hCQ0I3d2JwaTZkUUZWbmlsR1Q5cGcKLT4gWDI1NTE5IElzZCtzdHRtb2xiTlg5
|
||||
WjVEb2NvVXovaTlmcm5RU1hac3dkYnBMekZsQnMKKzBPcnRnSzl4RzVnT2RPZW9k
|
||||
WXdiQkxjamRsaFBiYzMyUlM1Z0lLL2hTVQotPiBYMjU1MTkgcEVLcFFqTHNjZzAw
|
||||
VDI4Nk1XWnE1dFJqZE5MOEhwb0VQV0hpbGErZWdSRQpJTWlTdzVaYnk4d0xuNkc0
|
||||
YXlHOUFJbFQ2Ty9YZUFzVlozWHI2WFpJaXBvCi0+IFgyNTUxOSA1THM4L1NoNjJj
|
||||
QkhMeGdRcGhmdG82dWZSUEtYSXJEblZFeDZMMWpkdUc0Cjc0TjR5RXQyMkdCdGZq
|
||||
SmRhUnd1WXZ6MGNBeUNTY2JtbHVTbjZwYm91UTgKLS0tIGR6MXU0NSsxdWptK2tj
|
||||
ZENTU0JlSlZGTDRIN29WSDFTaCtOSDJBUEpyRDAKqviriYjN2oOLIh6Rk5YTpCoC
|
||||
zlEp6FM9q4csg3niPkgovpIyYBTa/QkG
|
||||
-----END AGE ENCRYPTED FILE-----
|
|
@ -31,4 +31,5 @@ in {
|
|||
"etna/forgejoRunnerSecret.age".publicKeys = main ++ [etna];
|
||||
"etna/vaultwardenEnv.age".publicKeys = main ++ [etna];
|
||||
"etna/vmauthEnv.age".publicKeys = main ++ [etna];
|
||||
"etna/upsdUserPass.age".publicKeys = main ++ [etna];
|
||||
}
|
||||
|
|
|
@ -30,6 +30,7 @@ in {
|
|||
./satisfactory.nix
|
||||
./shlink.nix
|
||||
./uku.nix
|
||||
./ups.nix
|
||||
./vaultwarden.nix
|
||||
];
|
||||
|
||||
|
|
70
systems/etna/ups.nix
Normal file
70
systems/etna/ups.nix
Normal file
|
@ -0,0 +1,70 @@
|
|||
{
|
||||
_utils,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
upsdPass = _utils.setupSingleSecret config "upsdUserPass" {};
|
||||
in {
|
||||
imports = [upsdPass.generate];
|
||||
|
||||
power.ups = {
|
||||
enable = true;
|
||||
mode = "standalone";
|
||||
|
||||
upsd.listen = [
|
||||
{
|
||||
address = "127.0.0.1";
|
||||
port = 3493;
|
||||
}
|
||||
];
|
||||
|
||||
users.admin = {
|
||||
passwordFile = upsdPass.path;
|
||||
instcmds = ["ALL"];
|
||||
actions = ["SET" "FSD"];
|
||||
};
|
||||
|
||||
ups.eaton-3s-850 = {
|
||||
driver = "usbhid-ups";
|
||||
port = "auto";
|
||||
description = "Eaton 3S 850 UPS";
|
||||
};
|
||||
|
||||
upsmon.monitor.eaton-3s-850 = {
|
||||
user = "admin";
|
||||
passwordFile = upsdPass.path;
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
prometheus.exporters.nut = {
|
||||
enable = true;
|
||||
user = "root";
|
||||
nutUser = "admin";
|
||||
passwordPath = upsdPass.path;
|
||||
nutVariables = [
|
||||
"battery.charge"
|
||||
"battery.runtime"
|
||||
"battery.voltage"
|
||||
"device.info"
|
||||
"input.voltage"
|
||||
"ups.load"
|
||||
"ups.status"
|
||||
];
|
||||
};
|
||||
|
||||
vmagent.prometheusConfig.scrape_configs = [
|
||||
{
|
||||
job_name = "nut";
|
||||
metrics_path = "/ups_metrics";
|
||||
params.ups = ["eaton-3s-850"];
|
||||
static_configs = [
|
||||
{
|
||||
targets = ["localhost:${builtins.toString config.services.prometheus.exporters.nut.port}"];
|
||||
labels.ups = "eaton-3s-850";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue