mirror of
https://github.com/CHN-beta/nixos.git
synced 2026-01-12 01:09:24 +08:00
modules.services.mariadb: allow mount from configurable location
This commit is contained in:
@@ -113,6 +113,7 @@ inputs:
|
||||
kvm.aarch64 = true;
|
||||
nfs."/" = [ "192.168.84.0/24" ];
|
||||
peerBanHelper = {};
|
||||
mariadb.mountFrom = "nodatacow";
|
||||
};
|
||||
bugs = [ "xmunet" "backlight" "amdpstate" "iwlwifi" ];
|
||||
packages = { mathematica = {}; vasp = {}; };
|
||||
|
||||
@@ -59,6 +59,7 @@ inputs:
|
||||
{ name = "n1"; mpiThreads = 8; openmpThreads = 4; }
|
||||
];
|
||||
};
|
||||
mariadb.mountFrom = "nodatacow";
|
||||
};
|
||||
packages = { vasp = {}; lumerical = {}; };
|
||||
user.users = [ "chn" "xll" "zem" "yjq" "gb" "wp" "hjp" "wm" "GROUPIII-1" "GROUPIII-2" "GROUPIII-3" "zgq" ];
|
||||
|
||||
@@ -74,6 +74,7 @@ inputs:
|
||||
];
|
||||
};
|
||||
};
|
||||
mariadb.mountFrom = "nodatacow";
|
||||
};
|
||||
packages = { vasp = {}; desktop = {}; };
|
||||
user.users =
|
||||
|
||||
@@ -13,6 +13,7 @@ inputs:
|
||||
};}));
|
||||
default = {};
|
||||
};
|
||||
mountFrom = mkOption { type = types.nullOr types.nonEmptyStr; default = null; };
|
||||
};
|
||||
config = let inherit (inputs.config.nixos.services) mariadb; in inputs.lib.mkIf mariadb.enable
|
||||
{
|
||||
@@ -30,7 +31,7 @@ inputs:
|
||||
};
|
||||
mysqlBackup =
|
||||
{
|
||||
enable = true;
|
||||
enable = mariadb.mountFrom == "nodatacow";
|
||||
singleTransaction = true;
|
||||
databases = builtins.map (db: db.value.database) (inputs.localLib.attrsToList mariadb.instances);
|
||||
};
|
||||
@@ -49,7 +50,10 @@ inputs:
|
||||
nixos.system.sops.secrets = builtins.listToAttrs (builtins.map
|
||||
(db: { name = "mariadb/${db.value.user}"; value.owner = inputs.config.users.users.mysql.name; })
|
||||
(builtins.filter (db: db.value.passwordFile == null) (inputs.localLib.attrsToList mariadb.instances)));
|
||||
environment.persistence."/nix/nodatacow".directories =
|
||||
[{ directory = "/var/lib/mysql"; user = "mysql"; group = "mysql"; mode = "0750"; }];
|
||||
environment.persistence = inputs.lib.mkIf (mariadb.mountFrom != null)
|
||||
{
|
||||
"/nix/${mariadb.mountFrom}".directories =
|
||||
[{ directory = "/var/lib/mysql"; user = "mysql"; group = "mysql"; mode = "0750"; }];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user