diff options
author | Franck Cuny <franck@fcuny.net> | 2024-08-03 14:04:03 -0700 |
---|---|---|
committer | Franck Cuny <franck@fcuny.net> | 2024-08-03 14:04:03 -0700 |
commit | 30558b5b98c362e4daabb9223286a2595191be4e (patch) | |
tree | 27ac618628521e2abd4c385b490e1b41ab0ab0a2 | |
parent | add lint as a target and reformat (diff) | |
download | world-30558b5b98c362e4daabb9223286a2595191be4e.tar.gz |
add a linux VM as a new host
The linux VM runs with UTM, and it has a very basic configuration for now.
-rw-r--r-- | README.md | 5 | ||||
-rw-r--r-- | flake.nix | 2 | ||||
-rw-r--r-- | justfile | 6 | ||||
-rw-r--r-- | nix/flake/hosts.nix | 12 | ||||
-rw-r--r-- | nix/hosts/vm/default.nix | 29 | ||||
-rw-r--r-- | nix/hosts/vm/hardware.nix | 14 |
6 files changed, 68 insertions, 0 deletions
diff --git a/README.md b/README.md index 154709f..ece55f0 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ Tools, scripts, and configurations for my machines. + +## Linux VM + +- using UTM +- deploy by running `nixos-rebuild switch --flake ".#vm"` on the VM diff --git a/flake.nix b/flake.nix index b37000b..0ceed11 100644 --- a/flake.nix +++ b/flake.nix @@ -45,6 +45,8 @@ systems = [ "aarch64-darwin" "x86_64-darwin" + + "aarch64-linux" "x86_64-linux" ]; diff --git a/justfile b/justfile index 829e8f9..5179ff1 100644 --- a/justfile +++ b/justfile @@ -1,18 +1,24 @@ +# a quick setup setup: rye sync +# update dependencies update-deps: nix flake update --commit-lock-file +# build (and only build) the configuration for darwin build-darwin: darwin-rebuild build --flake .# +# build and switch the configuration for darwin switch-darwin: darwin-rebuild switch --flake .# +# a simple check to ensure the nix configuration is OK test-nix: nix flake check nix develop -c echo OK +# run various formatting tools fmt: nix fmt 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"; }]; +} |