From 30558b5b98c362e4daabb9223286a2595191be4e Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Sat, 3 Aug 2024 14:04:03 -0700 Subject: add a linux VM as a new host The linux VM runs with UTM, and it has a very basic configuration for now. --- nix/flake/hosts.nix | 12 ++++++++++++ nix/hosts/vm/default.nix | 29 +++++++++++++++++++++++++++++ nix/hosts/vm/hardware.nix | 14 ++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 nix/hosts/vm/default.nix create mode 100644 nix/hosts/vm/hardware.nix (limited to 'nix') diff --git a/nix/flake/hosts.nix b/nix/flake/hosts.nix index 36821b6..c02fe6c 100644 --- a/nix/flake/hosts.nix +++ b/nix/flake/hosts.nix @@ -30,6 +30,14 @@ let ]; specialArgs = { inherit inputs self; }; }; + + mkNixosConfig = system: path: nixpkgs.lib.nixosSystem { + inherit system; + modules = [ + path + ]; + specialArgs = { inherit inputs self; }; + }; in { flake = mkMerge [ @@ -38,6 +46,10 @@ in mba-fcuny = mkDarwinConfig "aarch64-darwin" "${self}/nix/hosts/mba"; HQ-C02FK3Q7MD6T = mkDarwinConfig "x86_64-darwin" "${self}/nix/hosts/work"; }; + + nixosConfigurations = { + vm = mkNixosConfig "aarch64-linux" "${self}/nix/hosts/vm"; + }; } ]; } diff --git a/nix/hosts/vm/default.nix b/nix/hosts/vm/default.nix new file mode 100644 index 0000000..a6dff3a --- /dev/null +++ b/nix/hosts/vm/default.nix @@ -0,0 +1,29 @@ +{ pkgs, ... }: { + imports = [ + ./hardware.nix + ]; + + boot.tmp.cleanOnBoot = true; + zramSwap.enable = false; + + networking = { + hostName = "nixos"; + domain = ""; + }; + + services.openssh.enable = true; + + users.users.root.openssh.authorizedKeys.keys = [ + ''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINBkozy+X96u5ciX766bJ/AyQ3xm1tXZTIr5+4PVFZFi'' + ]; + + system.stateVersion = "23.11"; + + environment = { + systemPackages = with pkgs; [ + git + jq + vim + ]; + }; +} diff --git a/nix/hosts/vm/hardware.nix b/nix/hosts/vm/hardware.nix new file mode 100644 index 0000000..89c3d8b --- /dev/null +++ b/nix/hosts/vm/hardware.nix @@ -0,0 +1,14 @@ +{ modulesPath, ... }: +{ + imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; + boot.loader.grub = { + efiSupport = true; + efiInstallAsRemovable = true; + device = "nodev"; + }; + fileSystems."/boot" = { device = "/dev/disk/by-uuid/E783-E9AE"; fsType = "vfat"; }; + boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ]; + boot.initrd.kernelModules = [ "nvme" ]; + fileSystems."/" = { device = "/dev/vda2"; fsType = "ext4"; }; + swapDevices = [{ device = "/dev/vda3"; }]; +} -- cgit 1.4.1