feat: added test system
This commit is contained in:
parent
26e8003332
commit
b0a8e65480
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,2 +1,3 @@
|
||||||
.pre-commit-config.yaml
|
.pre-commit-config.yaml
|
||||||
.direnv
|
.direnv
|
||||||
|
todo*
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
## Hosts
|
## Hosts
|
||||||
- `patricknix` my main laptop
|
- `patricknix` my main laptop
|
||||||
- `desktopnix` my main desktop
|
- `desktopnix` my main desktop
|
||||||
|
- `testienix` old laptop for testing
|
||||||
|
|
||||||
## Users
|
## Users
|
||||||
- `patrick` my normal everyday unprivileged user
|
- `patrick` my normal everyday unprivileged user
|
||||||
|
@ -79,7 +80,9 @@
|
||||||
2. Don't forget to add necesarry config for filesystems, etc.
|
2. Don't forget to add necesarry config for filesystems, etc.
|
||||||
3. Generate ISO image with `nix build --print-out-paths --no-link .#images.<target-system>.live-iso`
|
3. Generate ISO image with `nix build --print-out-paths --no-link .#images.<target-system>.live-iso`
|
||||||
- This might take multiple minutes(~10)
|
- This might take multiple minutes(~10)
|
||||||
3. Copy ISO to usb and boot
|
- Alternatively boot an official nixos image connect with password
|
||||||
|
3. Copy ISO to usb using dd
|
||||||
|
3. After booting copy the installer to the live system using `nix copy --to <target> .#packages.<target-system>.installer-package.<target>`
|
||||||
|
|
||||||
|
|
||||||
## Deploy
|
## Deploy
|
||||||
|
|
|
@ -5,3 +5,7 @@ system = "x86_64-linux"
|
||||||
[desktopnix]
|
[desktopnix]
|
||||||
type = "nixos"
|
type = "nixos"
|
||||||
system = "x86_64-linux"
|
system = "x86_64-linux"
|
||||||
|
|
||||||
|
[testienix]
|
||||||
|
type = "nixos"
|
||||||
|
system = "x86_64-linux"
|
||||||
|
|
|
@ -12,9 +12,9 @@
|
||||||
type = "table";
|
type = "table";
|
||||||
format = "gpt";
|
format = "gpt";
|
||||||
partitions = [
|
partitions = [
|
||||||
(partEfiBoot "boot" "0%" "512MiB")
|
(partEfiBoot "boot" "0%" "1GiB")
|
||||||
(partSwap "swap" "1GiB" "17GiB")
|
(partSwap "swap" "1GiB" "17GiB")
|
||||||
(partLuksZfs "rpool" "17GiB" "100%")
|
(partLuksZfs "rpool" "rpool" "17GiB" "100%")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
type = "table";
|
type = "table";
|
||||||
format = "gpt";
|
format = "gpt";
|
||||||
partitions = [
|
partitions = [
|
||||||
(partLuksZfs "infantry-fighting-vehicle" "0%" "100%")
|
(partLuksZfs "infantry-fighting-vehicle" "infantry-fighting-vehicle" "0%" "100%")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,7 @@
|
||||||
type = "table";
|
type = "table";
|
||||||
format = "gpt";
|
format = "gpt";
|
||||||
partitions = [
|
partitions = [
|
||||||
(partLuksZfs "panzer" "0%" "100%")
|
(partLuksZfs "panzer" "panzer" "0%" "100%")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
partitions = [
|
partitions = [
|
||||||
(partEfiBoot "boot" "0%" "512MiB")
|
(partEfiBoot "boot" "0%" "512MiB")
|
||||||
#(partSwap "swap" "1GiB" "17GiB")
|
#(partSwap "swap" "1GiB" "17GiB")
|
||||||
(partLuksZfs "rpool" "512MiB" "100%")
|
(partLuksZfs "rpool" "rpool" "512MiB" "100%")
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
16
hosts/testienix/default.nix
Normal file
16
hosts/testienix/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{inputs, ...}: {
|
||||||
|
imports = [
|
||||||
|
inputs.nixos-hardware.nixosModules.common-pc
|
||||||
|
inputs.nixos-hardware.nixosModules.common-pc-ssd
|
||||||
|
|
||||||
|
# TODO: sollte entfernt werden für server
|
||||||
|
../common/core
|
||||||
|
|
||||||
|
../common/hardware/intel.nix
|
||||||
|
../common/hardware/physical.nix
|
||||||
|
../common/hardware/zfs.nix
|
||||||
|
|
||||||
|
./net.nix
|
||||||
|
./fs.nix
|
||||||
|
];
|
||||||
|
}
|
57
hosts/testienix/fs.nix
Normal file
57
hosts/testienix/fs.nix
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
disko.devices = {
|
||||||
|
disk = {
|
||||||
|
internal-hdd = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/disk/by-id/${config.secrets.secrets.local.disko.internal-hdd}";
|
||||||
|
content = with lib.disko.gpt; {
|
||||||
|
type = "table";
|
||||||
|
format = "gpt";
|
||||||
|
partitions = [
|
||||||
|
(partEfiBoot "boot" "0%" "1GiB")
|
||||||
|
(partSwap "swap" "1GiB" "17GiB")
|
||||||
|
(partLuksZfs "rpool" "rpool" "17GiB" "100%")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
external-hdd-1 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/disk/by-id/${config.secrets.secrets.local.disko.external-hdd-1}";
|
||||||
|
content = with lib.disko.gpt; {
|
||||||
|
type = "table";
|
||||||
|
format = "gpt";
|
||||||
|
partitions = [
|
||||||
|
(partLuksZfs "panzer-1" "panzer" "0%" "100%")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
external-hdd-2 = {
|
||||||
|
type = "disk";
|
||||||
|
device = "/dev/disk/by-id/${config.secrets.secrets.local.disko.external-hdd-2}";
|
||||||
|
content = with lib.disko.gpt; {
|
||||||
|
type = "table";
|
||||||
|
format = "gpt";
|
||||||
|
partitions = [
|
||||||
|
(partLuksZfs "panzer-2" "panzer" "0%" "100%")
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
zpool = with lib.disko.zfs; {
|
||||||
|
rpool = defaultZpoolOptions // {datasets = defaultZfsDatasets;};
|
||||||
|
panzer =
|
||||||
|
defaultZpoolOptions
|
||||||
|
// {
|
||||||
|
datasets = {
|
||||||
|
"save" = unmountable;
|
||||||
|
"safe/data" = filesystem "/data";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
12
hosts/testienix/net.nix
Normal file
12
hosts/testienix/net.nix
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{config, ...}: {
|
||||||
|
networking = {
|
||||||
|
inherit (config.secrets.secrets.local.networking) hostId;
|
||||||
|
};
|
||||||
|
systemd.network.networks = {
|
||||||
|
"01-lan1" = {
|
||||||
|
DHCP = "yes";
|
||||||
|
matchConfig.MACAddress = config.secrets.secrets.local.networking.lan1.mac;
|
||||||
|
dns = ["192.168.178.2"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
BIN
hosts/testienix/secrets/secrets.nix.age
Normal file
BIN
hosts/testienix/secrets/secrets.nix.age
Normal file
Binary file not shown.
|
@ -22,7 +22,7 @@ inputs: self: super: {
|
||||||
randomEncryption = true;
|
randomEncryption = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
partLuksZfs = name: start: end: {
|
partLuksZfs = name: pool: start: end: {
|
||||||
inherit start end;
|
inherit start end;
|
||||||
name = "enc-${name}";
|
name = "enc-${name}";
|
||||||
content = {
|
content = {
|
||||||
|
@ -31,7 +31,7 @@ inputs: self: super: {
|
||||||
extraOpenArgs = ["--allow-discard"];
|
extraOpenArgs = ["--allow-discard"];
|
||||||
content = {
|
content = {
|
||||||
type = "zfs";
|
type = "zfs";
|
||||||
pool = name;
|
inherit pool;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -15,6 +15,9 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Grub broken
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
variables.EDITOR = "nvim";
|
variables.EDITOR = "nvim";
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
|
|
Loading…
Reference in a new issue