summary refs log blame commit diff
path: root/nixos/modules/services/monitoring/fusion-inventory.nix
blob: 9b65c76ce02e597462a7be954ea24132371159fa (plain) (tree)























                                                        
                                                       

                          
                                      



















                                                                              
                                    
                                           
                          

      
                                         


                                             





                                                                                                                     
# Fusion Inventory daemon.
{ config, lib, pkgs, ... }:

with lib;

let
  cfg = config.services.fusionInventory;

  configFile = pkgs.writeText "fusion_inventory.conf" ''
    server = ${concatStringsSep ", " cfg.servers}

    logger = stderr

    ${cfg.extraConfig}
  '';

in {

  ###### interface

  options = {

    services.fusionInventory = {

      enable = mkEnableOption "Fusion Inventory Agent";

      servers = mkOption {
        type = types.listOf types.str;
        description = ''
          The urls of the OCS/GLPI servers to connect to.
        '';
      };

      extraConfig = mkOption {
        default = "";
        type = types.lines;
        description = ''
          Configuration that is injected verbatim into the configuration file.
        '';
      };
    };
  };


  ###### implementation

  config = mkIf cfg.enable {

    users.users.fusion-inventory = {
      description = "FusionInventory user";
      isSystemUser = true;
    };

    systemd.services.fusion-inventory = {
      description = "Fusion Inventory Agent";
      wantedBy = [ "multi-user.target" ];

      serviceConfig = {
        ExecStart = "${pkgs.fusionInventory}/bin/fusioninventory-agent --conf-file=${configFile} --daemon --no-fork";
      };
    };
  };
}