Compare commits
8 Commits
sanoid
...
microvm-di
| Author | SHA1 | Date | |
|---|---|---|---|
|
e8c188debf
|
|||
|
1f559d93ba
|
|||
|
a03b7506c5
|
|||
|
3b2a7cedc5
|
|||
|
a48e271853
|
|||
|
d202a3d0cb
|
|||
| ef33833910 | |||
| d73031e7f1 |
@@ -21,18 +21,3 @@ Testing disko partitioning is working quite well. Just run the following and che
|
|||||||
```bash
|
```bash
|
||||||
nix run -L .\#nixosConfigurations.fanny.config.system.build.vmWithDisko
|
nix run -L .\#nixosConfigurations.fanny.config.system.build.vmWithDisko
|
||||||
```
|
```
|
||||||
|
|
||||||
Only problem is that encryption is not working, so it needs to be commented out. For testing host fanny the following parts in ```./machines/modules/disko/fanny.nix``` need to be commented out(for both pools!):
|
|
||||||
```nix
|
|
||||||
datasets = {
|
|
||||||
encrypted = {
|
|
||||||
options = {
|
|
||||||
encryption = "aes-256-gcm"; #THIS ONE
|
|
||||||
keyformat = "passphrase"; #THIS ONE
|
|
||||||
keylocation = "file:///tmp/root.key"; #THIS ONE
|
|
||||||
};
|
|
||||||
# use this to read the key during boot
|
|
||||||
postCreateHook = '' #THIS ONE
|
|
||||||
zfs set keylocation="prompt" "zroot/$name"; #THIS ONE
|
|
||||||
''; #THIS ONE
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -195,8 +195,7 @@ rec {
|
|||||||
|
|
||||||
vmNestedMicroVMOverwrites = host: sopsDummy: {
|
vmNestedMicroVMOverwrites = host: sopsDummy: {
|
||||||
|
|
||||||
services.malobeo.microvm.deployHosts = pkgs.lib.mkForce [];
|
microvm.vms = pkgs.lib.mkForce (
|
||||||
microvm.vms =
|
|
||||||
let
|
let
|
||||||
# Map the values to each hostname to then generate an Attrset using listToAttrs
|
# Map the values to each hostname to then generate an Attrset using listToAttrs
|
||||||
mapperFunc = name: { inherit name; value = {
|
mapperFunc = name: { inherit name; value = {
|
||||||
@@ -216,7 +215,7 @@ rec {
|
|||||||
};
|
};
|
||||||
}; };
|
}; };
|
||||||
in
|
in
|
||||||
builtins.listToAttrs (map mapperFunc self.nixosConfigurations.${host}.config.services.malobeo.microvm.deployHosts);
|
builtins.listToAttrs (map mapperFunc self.nixosConfigurations.${host}.config.services.malobeo.microvm.deployHosts));
|
||||||
};
|
};
|
||||||
|
|
||||||
buildVM = host: networking: sopsDummy: disableDisko: varPath: writableStore: fwdPort: (self.nixosConfigurations.${host}.extendModules {
|
buildVM = host: networking: sopsDummy: disableDisko: varPath: writableStore: fwdPort: (self.nixosConfigurations.${host}.extendModules {
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
templates."default" = {
|
templates."default" = {
|
||||||
hourly = 0;
|
hourly = 24;
|
||||||
daily = 30; #keep 30 daily snapshots
|
daily = 30; #keep 30 daily snapshots
|
||||||
monthly = 6; #keep 6 monthly backups
|
monthly = 6; #keep 6 monthly backups
|
||||||
yearly = 0;
|
yearly = 0;
|
||||||
|
|||||||
@@ -102,6 +102,22 @@ in
|
|||||||
/run/current-system/sw/bin/microvm -Ru ${name}
|
/run/current-system/sw/bin/microvm -Ru ${name}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"microvm-init-dirs@${name}" = {
|
||||||
|
description = "Initialize microvm directories";
|
||||||
|
after = [ "zfs-mount.service" ];
|
||||||
|
wantedBy = [ "microvm@${name}.service" ];
|
||||||
|
unitConfig.ConditionPathExists = "!/var/lib/microvms/${name}/.is_initialized";
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
};
|
||||||
|
script = ''
|
||||||
|
mkdir -p /var/lib/microvms/${name}/var
|
||||||
|
mkdir -p /var/lib/microvms/${name}/etc
|
||||||
|
mkdir -p /var/lib/microvms/data/${name}
|
||||||
|
touch /var/lib/microvms/${name}/.is_initialized
|
||||||
|
'';
|
||||||
|
};
|
||||||
}) {} (cfg.deployHosts);
|
}) {} (cfg.deployHosts);
|
||||||
|
|
||||||
systemd.timers = builtins.foldl' (timers: name: timers // {
|
systemd.timers = builtins.foldl' (timers: name: timers // {
|
||||||
|
|||||||
@@ -43,4 +43,11 @@
|
|||||||
allowedIPs = [ "10.100.0.101/32" ];
|
allowedIPs = [ "10.100.0.101/32" ];
|
||||||
publicKey = "3U59F6T1s/1LaZBIa6wB0qsVuO6pRR9jfYZJIH2piAU=";
|
publicKey = "3U59F6T1s/1LaZBIa6wB0qsVuO6pRR9jfYZJIH2piAU=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
"backup0" = {
|
||||||
|
role = "client";
|
||||||
|
address = "10.100.0.20";
|
||||||
|
allowedIPs = [ "10.100.0.20/32" ];
|
||||||
|
publicKey = "Pp55Jg//jREzHdbbIqTXc9N7rnLZIFw904qh6NLrACE=";
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,7 +68,11 @@ in
|
|||||||
users = [ "backup" ];
|
users = [ "backup" ];
|
||||||
commands = [
|
commands = [
|
||||||
{
|
{
|
||||||
command = "${pkgs.zfs}/bin/zfs";
|
command = "/run/current-system/sw/bin/zfs";
|
||||||
|
options = [ "NOPASSWD" ];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
command = "/run/current-system/sw/bin/zpool";
|
||||||
options = [ "NOPASSWD" ];
|
options = [ "NOPASSWD" ];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user