Merge pull request #22225 from bachp/glusterfs-service
glusterfs: add service
This commit is contained in:
commit
17cc22a619
@ -339,6 +339,7 @@
|
|||||||
./services/monitoring/zabbix-server.nix
|
./services/monitoring/zabbix-server.nix
|
||||||
./services/network-filesystems/cachefilesd.nix
|
./services/network-filesystems/cachefilesd.nix
|
||||||
./services/network-filesystems/drbd.nix
|
./services/network-filesystems/drbd.nix
|
||||||
|
./services/network-filesystems/glusterfs.nix
|
||||||
./services/network-filesystems/ipfs.nix
|
./services/network-filesystems/ipfs.nix
|
||||||
./services/network-filesystems/netatalk.nix
|
./services/network-filesystems/netatalk.nix
|
||||||
./services/network-filesystems/nfsd.nix
|
./services/network-filesystems/nfsd.nix
|
||||||
|
84
nixos/modules/services/network-filesystems/glusterfs.nix
Normal file
84
nixos/modules/services/network-filesystems/glusterfs.nix
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
inherit (pkgs) glusterfs;
|
||||||
|
|
||||||
|
cfg = config.services.glusterfs;
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
###### interface
|
||||||
|
|
||||||
|
options = {
|
||||||
|
|
||||||
|
services.glusterfs = {
|
||||||
|
|
||||||
|
enable = mkEnableOption "GlusterFS Daemon";
|
||||||
|
|
||||||
|
logLevel = mkOption {
|
||||||
|
type = types.enum ["DEBUG" "INFO" "WARNING" "ERROR" "CRITICAL" "TRACE" "NONE"];
|
||||||
|
description = "Log level used by the GlusterFS daemon";
|
||||||
|
default = "INFO";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraFlags = mkOption {
|
||||||
|
type = types.listOf types.str;
|
||||||
|
description = "Extra flags passed to the GlusterFS daemon";
|
||||||
|
default = [];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
###### implementation
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
environment.systemPackages = [ pkgs.glusterfs ];
|
||||||
|
|
||||||
|
services.rpcbind.enable = true;
|
||||||
|
|
||||||
|
systemd.services.glusterd = {
|
||||||
|
|
||||||
|
description = "GlusterFS, a clustered file-system server";
|
||||||
|
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
requires = [ "rpcbind.service" ];
|
||||||
|
after = [ "rpcbind.service" "network.target" "local-fs.target" ];
|
||||||
|
before = [ "network-online.target" ];
|
||||||
|
|
||||||
|
preStart = ''
|
||||||
|
install -m 0755 -d /var/log/glusterfs
|
||||||
|
'';
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type="forking";
|
||||||
|
PIDFile="/run/glusterd.pid";
|
||||||
|
LimitNOFILE=65536;
|
||||||
|
ExecStart="${glusterfs}/sbin/glusterd -p /run/glusterd.pid --log-level=${cfg.logLevel} ${toString cfg.extraFlags}";
|
||||||
|
KillMode="process";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.services.glustereventsd = {
|
||||||
|
|
||||||
|
description = "Gluster Events Notifier";
|
||||||
|
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
after = [ "syslog.target" "network.target" ];
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Type="simple";
|
||||||
|
Environment="PYTHONPATH=${glusterfs}/usr/lib/python2.7/site-packages";
|
||||||
|
PIDFile="/run/glustereventsd.pid";
|
||||||
|
ExecStart="${glusterfs}/sbin/glustereventsd --pid-file /run/glustereventsd.pid";
|
||||||
|
ExecReload="/bin/kill -SIGUSR2 $MAINPID";
|
||||||
|
KillMode="control-group";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
@ -216,7 +216,7 @@ in
|
|||||||
|
|
||||||
environment.etc.fstab.text =
|
environment.etc.fstab.text =
|
||||||
let
|
let
|
||||||
fsToSkipCheck = [ "none" "btrfs" "zfs" "tmpfs" "nfs" "vboxsf" ];
|
fsToSkipCheck = [ "none" "btrfs" "zfs" "tmpfs" "nfs" "vboxsf" "glusterfs" ];
|
||||||
skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck;
|
skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck;
|
||||||
in ''
|
in ''
|
||||||
# This is a generated file. Do not edit!
|
# This is a generated file. Do not edit!
|
||||||
|
11
nixos/modules/tasks/filesystems/glusterfs.nix
Normal file
11
nixos/modules/tasks/filesystems/glusterfs.nix
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
{
|
||||||
|
config = mkIf (any (fs: fs == "glusterfs") config.boot.supportedFilesystems) {
|
||||||
|
|
||||||
|
system.fsPackages = [ pkgs.glusterfs ];
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user