Add a role for mounting the nix store over 9pfs.
This is useful for virtual machines since we can have a persistent /nix/store on the host machine.
This commit is contained in:
@@ -29,7 +29,7 @@
|
||||
# Install on a new machine:
|
||||
#
|
||||
#
|
||||
# doas nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount hosts/quark/disk-config.nix
|
||||
# doas nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount hosts/odo/disk-config.nix
|
||||
|
||||
# nix flake update zsh-histdb --flake .
|
||||
# nix flake update ansible-sshjail --flake .
|
||||
@@ -115,120 +115,131 @@
|
||||
./configuration.nix
|
||||
];
|
||||
};
|
||||
systems = {
|
||||
odo = {
|
||||
main = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
systems =
|
||||
let
|
||||
additional_iso_modules = [
|
||||
(nixpkgs + "/nixos/modules/installer/cd-dvd/iso-image.nix")
|
||||
# TODO: Figure out how to do image based appliances
|
||||
# (nixpkgs + "/nixos/modules/profiles/image-based-appliance.nix")
|
||||
{
|
||||
isoImage.makeEfiBootable = true;
|
||||
isoImage.makeUsbBootable = true;
|
||||
me.buildingIso = true;
|
||||
me.optimizations.enable = nixpkgs.lib.mkDefault false;
|
||||
me._9pfs_nix_store.is_iso = true;
|
||||
}
|
||||
{
|
||||
# These are big space hogs. The chance that I need them on an ISO is slim.
|
||||
me.steam.enable = nixpkgs.lib.mkForce false;
|
||||
me.pcsx2.enable = nixpkgs.lib.mkForce false;
|
||||
}
|
||||
];
|
||||
additional_vm_modules = [
|
||||
(nixpkgs + "/nixos/modules/profiles/qemu-guest.nix")
|
||||
{
|
||||
networking.dhcpcd.enable = true;
|
||||
networking.useDHCP = true;
|
||||
me.optimizations.enable = nixpkgs.lib.mkDefault false;
|
||||
}
|
||||
{
|
||||
# me._9pfs_nix_store.enable = true;
|
||||
}
|
||||
];
|
||||
in
|
||||
{
|
||||
odo = rec {
|
||||
main = base_x86_64_linux // {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/odo
|
||||
];
|
||||
}
|
||||
);
|
||||
iso = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/odo
|
||||
(nixpkgs + "/nixos/modules/installer/cd-dvd/iso-image.nix")
|
||||
# TODO: Figure out how to do image based appliances
|
||||
# (nixpkgs + "/nixos/modules/profiles/image-based-appliance.nix")
|
||||
{
|
||||
isoImage.makeEfiBootable = true;
|
||||
isoImage.makeUsbBootable = true;
|
||||
me.buildingIso = true;
|
||||
me.optimizations.enable = nixpkgs.lib.mkForce false;
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
};
|
||||
quark = {
|
||||
main = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
};
|
||||
iso = main // {
|
||||
modules = main.modules ++ additional_iso_modules;
|
||||
};
|
||||
vm = main // {
|
||||
modules = main.modules ++ additional_vm_modules;
|
||||
};
|
||||
vm_iso = main // {
|
||||
modules = main.modules ++ additional_vm_modules ++ additional_iso_modules;
|
||||
};
|
||||
};
|
||||
quark = rec {
|
||||
main = base_x86_64_linux // {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/quark
|
||||
];
|
||||
}
|
||||
);
|
||||
iso = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/quark
|
||||
(nixpkgs + "/nixos/modules/installer/cd-dvd/iso-image.nix")
|
||||
# TODO: Figure out how to do image based appliances
|
||||
# (nixpkgs + "/nixos/modules/profiles/image-based-appliance.nix")
|
||||
{
|
||||
isoImage.makeEfiBootable = true;
|
||||
isoImage.makeUsbBootable = true;
|
||||
me.buildingIso = true;
|
||||
me.optimizations.enable = nixpkgs.lib.mkForce false;
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
};
|
||||
neelix = {
|
||||
main = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
};
|
||||
iso = main // {
|
||||
modules = main.modules ++ additional_iso_modules;
|
||||
};
|
||||
vm = main // {
|
||||
modules = main.modules ++ additional_vm_modules;
|
||||
};
|
||||
vm_iso = main // {
|
||||
modules = main.modules ++ additional_vm_modules ++ additional_iso_modules;
|
||||
};
|
||||
};
|
||||
neelix = rec {
|
||||
main = base_x86_64_linux // {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/neelix
|
||||
];
|
||||
}
|
||||
);
|
||||
iso = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/neelix
|
||||
(nixpkgs + "/nixos/modules/installer/cd-dvd/iso-image.nix")
|
||||
};
|
||||
iso = main // {
|
||||
modules = main.modules ++ additional_iso_modules;
|
||||
};
|
||||
vm = main // {
|
||||
modules = main.modules ++ additional_vm_modules;
|
||||
};
|
||||
vm_iso = main // {
|
||||
modules = main.modules ++ additional_vm_modules ++ additional_iso_modules;
|
||||
};
|
||||
};
|
||||
hydra =
|
||||
let
|
||||
additional_iso_modules = additional_iso_modules ++ [
|
||||
{
|
||||
isoImage.makeEfiBootable = true;
|
||||
isoImage.makeUsbBootable = true;
|
||||
me.buildingIso = true;
|
||||
me.optimizations.enable = nixpkgs.lib.mkForce false;
|
||||
me.optimizations.enable = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
in
|
||||
rec {
|
||||
main = base_x86_64_linux // {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/hydra
|
||||
];
|
||||
};
|
||||
iso = main // {
|
||||
modules = main.modules ++ additional_iso_modules;
|
||||
};
|
||||
vm = main // {
|
||||
modules = main.modules ++ additional_vm_modules;
|
||||
};
|
||||
vm_iso = main // {
|
||||
modules = main.modules ++ additional_vm_modules ++ additional_iso_modules;
|
||||
};
|
||||
};
|
||||
};
|
||||
hydra = {
|
||||
main = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/hydra
|
||||
];
|
||||
}
|
||||
);
|
||||
iso = nixpkgs.lib.nixosSystem (
|
||||
base_x86_64_linux
|
||||
// {
|
||||
modules = base_x86_64_linux.modules ++ [
|
||||
./hosts/hydra
|
||||
(nixpkgs + "/nixos/modules/installer/cd-dvd/iso-image.nix")
|
||||
{
|
||||
isoImage.makeEfiBootable = true;
|
||||
isoImage.makeUsbBootable = true;
|
||||
me.buildingIso = true;
|
||||
}
|
||||
];
|
||||
}
|
||||
);
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
nixosConfigurations.odo = systems.odo.main;
|
||||
iso.odo = systems.odo.iso.config.system.build.isoImage;
|
||||
nixosConfigurations.quark = systems.quark.main;
|
||||
iso.quark = systems.quark.iso.config.system.build.isoImage;
|
||||
nixosConfigurations.neelix = systems.neelix.main;
|
||||
iso.neelix = systems.neelix.iso.config.system.build.isoImage;
|
||||
nixosConfigurations.hydra = systems.hydra.main;
|
||||
iso.hydra = systems.hydra.iso.config.system.build.isoImage;
|
||||
nixosConfigurations.odo = nixpkgs.lib.nixosSystem systems.odo.main;
|
||||
iso.odo = (nixpkgs.lib.nixosSystem systems.odo.iso).config.system.build.isoImage;
|
||||
nixosConfigurations.vm_odo = nixpkgs.lib.nixosSystem systems.odo.vm;
|
||||
vm_iso.odo = (nixpkgs.lib.nixosSystem systems.odo.vm_iso).config.system.build.isoImage;
|
||||
|
||||
nixosConfigurations.quark = nixpkgs.lib.nixosSystem systems.quark.main;
|
||||
iso.quark = (nixpkgs.lib.nixosSystem systems.quark.iso).config.system.build.isoImage;
|
||||
nixosConfigurations.vm_quark = nixpkgs.lib.nixosSystem systems.quark.vm;
|
||||
vm_iso.quark = (nixpkgs.lib.nixosSystem systems.quark.vm_iso).config.system.build.isoImage;
|
||||
|
||||
nixosConfigurations.neelix = nixpkgs.lib.nixosSystem systems.neelix.main;
|
||||
iso.neelix = (nixpkgs.lib.nixosSystem systems.neelix.iso).config.system.build.isoImage;
|
||||
nixosConfigurations.vm_neelix = nixpkgs.lib.nixosSystem systems.neelix.vm;
|
||||
vm_iso.neelix = (nixpkgs.lib.nixosSystem systems.neelix.vm_iso).config.system.build.isoImage;
|
||||
|
||||
nixosConfigurations.hydra = nixpkgs.lib.nixosSystem systems.hydra.main;
|
||||
iso.hydra = (nixpkgs.lib.nixosSystem systems.hydra.iso).config.system.build.isoImage;
|
||||
nixosConfigurations.vm_hydra = nixpkgs.lib.nixosSystem systems.hydra.vm;
|
||||
vm_iso.hydra = (nixpkgs.lib.nixosSystem systems.hydra.vm_iso).config.system.build.isoImage;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user