openafs_1_8: init at 1.8.0 (#41889)
- Introduce new "server" output holding the server binaries - Adapt tsmbac.patch to new build environment - Adapt openafs nixos server module accordingly - Update upstream CellServDB: 2017-03-14 -> 2018-05-14 - Introduce package attributes to refer to the openafs packages to use for server, programs and kernel module
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with import ./lib.nix { inherit lib; };
|
||||
# openafsMod, openafsBin, mkCellServDB
|
||||
with import ./lib.nix { inherit config lib pkgs; };
|
||||
|
||||
let
|
||||
inherit (lib) getBin mkOption mkIf optionalString singleton types;
|
||||
@@ -8,8 +9,8 @@ let
|
||||
cfg = config.services.openafsClient;
|
||||
|
||||
cellServDB = pkgs.fetchurl {
|
||||
url = http://dl.central.org/dl/cellservdb/CellServDB.2017-03-14;
|
||||
sha256 = "1197z6c5xrijgf66rhaymnm5cvyg2yiy1i20y4ah4mrzmjx0m7sc";
|
||||
url = http://dl.central.org/dl/cellservdb/CellServDB.2018-05-14;
|
||||
sha256 = "1wmjn6mmyy2r8p10nlbdzs4nrqxy8a9pjyrdciy5nmppg4053rk2";
|
||||
};
|
||||
|
||||
clientServDB = pkgs.writeText "client-cellServDB-${cfg.cellName}" (mkCellServDB cfg.cellName cfg.cellServDB);
|
||||
@@ -21,8 +22,6 @@ let
|
||||
echo "${cfg.mountPoint}:${cfg.cache.directory}:${toString cfg.cache.blocks}" > $out/cacheinfo
|
||||
'';
|
||||
|
||||
openafsMod = config.boot.kernelPackages.openafs;
|
||||
openafsBin = lib.getBin pkgs.openafs;
|
||||
in
|
||||
{
|
||||
###### interface
|
||||
@@ -147,6 +146,19 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
packages = {
|
||||
module = mkOption {
|
||||
default = config.boot.kernelPackages.openafs;
|
||||
type = types.package;
|
||||
description = "OpenAFS kernel module package. MUST match the userland package!";
|
||||
};
|
||||
programs = mkOption {
|
||||
default = getBin pkgs.openafs;
|
||||
type = types.package;
|
||||
description = "OpenAFS programs package. MUST match the kernel module package!";
|
||||
};
|
||||
};
|
||||
|
||||
sparse = mkOption {
|
||||
default = true;
|
||||
type = types.bool;
|
||||
@@ -180,7 +192,7 @@ in
|
||||
}
|
||||
];
|
||||
|
||||
environment.systemPackages = [ pkgs.openafs ];
|
||||
environment.systemPackages = [ openafsBin ];
|
||||
|
||||
environment.etc = {
|
||||
clientCellServDB = {
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
{ lib, ...}:
|
||||
{ config, lib, pkgs, ...}:
|
||||
|
||||
let
|
||||
inherit (lib) concatStringsSep mkOption types;
|
||||
inherit (lib) concatStringsSep getBin mkOption types;
|
||||
|
||||
in rec {
|
||||
|
||||
mkCellServDB = cellName: db: ''
|
||||
>${cellName}
|
||||
'' + (concatStringsSep "\n" (map (dbm: if (dbm.ip != "" && dbm.dnsname != "") then dbm.ip + " #" + dbm.dnsname else "")
|
||||
db));
|
||||
db))
|
||||
+ "\n";
|
||||
|
||||
# CellServDB configuration type
|
||||
cellServDBConfig = {
|
||||
@@ -25,4 +26,8 @@ in rec {
|
||||
description = "DNS full-qualified domain name of a database server";
|
||||
};
|
||||
};
|
||||
|
||||
openafsMod = config.services.openafsClient.packages.module;
|
||||
openafsBin = config.services.openafsClient.packages.programs;
|
||||
openafsSrv = config.services.openafsServer.package;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with import ./lib.nix { inherit lib; };
|
||||
# openafsBin, openafsSrv, mkCellServDB
|
||||
with import ./lib.nix { inherit config lib pkgs; };
|
||||
|
||||
let
|
||||
inherit (lib) concatStringsSep intersperse mapAttrsToList mkForce mkIf mkMerge mkOption optionalString types;
|
||||
@@ -11,21 +12,21 @@ let
|
||||
checkbintime 3 0 5 0 0
|
||||
'' + (optionalString cfg.roles.database.enable ''
|
||||
bnode simple vlserver 1
|
||||
parm ${openafsBin}/libexec/openafs/vlserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.vlserverArgs}
|
||||
parm ${openafsSrv}/libexec/openafs/vlserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.vlserverArgs}
|
||||
end
|
||||
bnode simple ptserver 1
|
||||
parm ${openafsBin}/libexec/openafs/ptserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.ptserverArgs}
|
||||
parm ${openafsSrv}/libexec/openafs/ptserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.ptserverArgs}
|
||||
end
|
||||
'') + (optionalString cfg.roles.fileserver.enable ''
|
||||
bnode dafs dafs 1
|
||||
parm ${openafsBin}/libexec/openafs/dafileserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.fileserverArgs}
|
||||
parm ${openafsBin}/libexec/openafs/davolserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.volserverArgs}
|
||||
parm ${openafsBin}/libexec/openafs/salvageserver ${cfg.roles.fileserver.salvageserverArgs}
|
||||
parm ${openafsBin}/libexec/openafs/dasalvager ${cfg.roles.fileserver.salvagerArgs}
|
||||
parm ${openafsSrv}/libexec/openafs/dafileserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.fileserverArgs}
|
||||
parm ${openafsSrv}/libexec/openafs/davolserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.volserverArgs}
|
||||
parm ${openafsSrv}/libexec/openafs/salvageserver ${cfg.roles.fileserver.salvageserverArgs}
|
||||
parm ${openafsSrv}/libexec/openafs/dasalvager ${cfg.roles.fileserver.salvagerArgs}
|
||||
end
|
||||
'') + (optionalString (cfg.roles.database.enable && cfg.roles.backup.enable) ''
|
||||
bnode simple buserver 1
|
||||
parm ${openafsBin}/libexec/openafs/buserver ${cfg.roles.backup.buserverArgs} ${optionalString (cfg.roles.backup.cellServDB != []) "-cellservdb /etc/openafs/backup/"}
|
||||
parm ${openafsSrv}/libexec/openafs/buserver ${cfg.roles.backup.buserverArgs} ${optionalString (cfg.roles.backup.cellServDB != []) "-cellservdb /etc/openafs/backup/"}
|
||||
end
|
||||
''));
|
||||
|
||||
@@ -39,8 +40,6 @@ let
|
||||
|
||||
udpSizeStr = toString cfg.udpPacketSize;
|
||||
|
||||
openafsBin = lib.getBin pkgs.openafs;
|
||||
|
||||
in {
|
||||
|
||||
options = {
|
||||
@@ -79,6 +78,12 @@ in {
|
||||
description = "Definition of all cell-local database server machines.";
|
||||
};
|
||||
|
||||
package = mkOption {
|
||||
default = pkgs.openafs.server or pkgs.openafs;
|
||||
type = types.package;
|
||||
description = "OpenAFS package for the server binaries";
|
||||
};
|
||||
|
||||
roles = {
|
||||
fileserver = {
|
||||
enable = mkOption {
|
||||
@@ -213,7 +218,7 @@ in {
|
||||
}
|
||||
];
|
||||
|
||||
environment.systemPackages = [ pkgs.openafs ];
|
||||
environment.systemPackages = [ openafsBin ];
|
||||
|
||||
environment.etc = {
|
||||
bosConfig = {
|
||||
@@ -244,7 +249,10 @@ in {
|
||||
after = [ "syslog.target" "network.target" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
restartIfChanged = false;
|
||||
unitConfig.ConditionPathExists = [ "/etc/openafs/server/rxkad.keytab" ];
|
||||
unitConfig.ConditionPathExists = [
|
||||
"|/etc/openafs/server/rxkad.keytab"
|
||||
"|/etc/openafs/server/KeyFileExt"
|
||||
];
|
||||
preStart = ''
|
||||
mkdir -m 0755 -p /var/openafs
|
||||
${optionalString (netInfo != null) "cp ${netInfo} /var/openafs/netInfo"}
|
||||
|
||||
Reference in New Issue
Block a user