vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / monitoring / fusion-inventory.nix
blob9b65c76ce02e597462a7be954ea24132371159fa
1 # Fusion Inventory daemon.
2 { config, lib, pkgs, ... }:
4 with lib;
6 let
7   cfg = config.services.fusionInventory;
9   configFile = pkgs.writeText "fusion_inventory.conf" ''
10     server = ${concatStringsSep ", " cfg.servers}
12     logger = stderr
14     ${cfg.extraConfig}
15   '';
17 in {
19   ###### interface
21   options = {
23     services.fusionInventory = {
25       enable = mkEnableOption "Fusion Inventory Agent";
27       servers = mkOption {
28         type = types.listOf types.str;
29         description = ''
30           The urls of the OCS/GLPI servers to connect to.
31         '';
32       };
34       extraConfig = mkOption {
35         default = "";
36         type = types.lines;
37         description = ''
38           Configuration that is injected verbatim into the configuration file.
39         '';
40       };
41     };
42   };
45   ###### implementation
47   config = mkIf cfg.enable {
49     users.users.fusion-inventory = {
50       description = "FusionInventory user";
51       isSystemUser = true;
52     };
54     systemd.services.fusion-inventory = {
55       description = "Fusion Inventory Agent";
56       wantedBy = [ "multi-user.target" ];
58       serviceConfig = {
59         ExecStart = "${pkgs.fusionInventory}/bin/fusioninventory-agent --conf-file=${configFile} --daemon --no-fork";
60       };
61     };
62   };