From d4319ff7b65294b493ee4f99136b971cf99549f4 Mon Sep 17 00:00:00 2001 From: Petru Paler Date: Wed, 3 Jan 2024 19:11:59 +0000 Subject: [PATCH] Configuration for alo-cloud-1 --- common/cloud-node.nix | 10 ++++++++ common/impermanence.nix | 2 +- flake.nix | 20 ++++++++++----- hosts/alo-cloud-1/default.nix | 14 +++++++++++ hosts/alo-cloud-1/hardware.nix | 46 ++++++++++++++++++++++++++++++++++ 5 files changed, 85 insertions(+), 7 deletions(-) create mode 100644 common/cloud-node.nix create mode 100644 hosts/alo-cloud-1/default.nix create mode 100644 hosts/alo-cloud-1/hardware.nix diff --git a/common/cloud-node.nix b/common/cloud-node.nix new file mode 100644 index 0000000..c91a937 --- /dev/null +++ b/common/cloud-node.nix @@ -0,0 +1,10 @@ +{ pkgs, ... }: +{ + imports = [ + ./consul.nix + ./impermanence.nix + ./sshd.nix + ./user-ppetru.nix + ./systemd-boot.nix + ]; +} diff --git a/common/impermanence.nix b/common/impermanence.nix index 1fda505..3e0ca0b 100644 --- a/common/impermanence.nix +++ b/common/impermanence.nix @@ -37,7 +37,7 @@ # We first mount the btrfs root to /mnt # so we can manipulate btrfs subvolumes. - mount -o subvol=/ /dev/mapper/luksroot /mnt + mount -o subvol=/ /dev/disk/by-label/btrfs /mnt # While we're tempted to just delete /root and create # a new snapshot from /root-blank, /root is already diff --git a/flake.nix b/flake.nix index c502cc0..7e1362f 100644 --- a/flake.nix +++ b/flake.nix @@ -12,13 +12,13 @@ outputs = { self, nixpkgs, nixpkgs-unstable, deploy-rs, ... }@inputs: let inherit (self); - system = "x86_64-linux"; overlay-unstable = final: prev: { unstable = nixpkgs-unstable.legacyPackages.${prev.system}; }; - mkNixos = modules: nixpkgs.lib.nixosSystem { + mkNixos = system: modules: nixpkgs.lib.nixosSystem { + system = system; modules = [ ({ config, pkgs, ... }: { nixpkgs.overlays = [ overlay-unstable ]; }) ] ++ modules; @@ -26,10 +26,11 @@ }; in { nixosConfigurations = { - c1 = mkNixos [ ./hosts/c1 ]; - c2 = mkNixos [ ./hosts/c2 ]; - c3 = mkNixos [ ./hosts/c3 ]; - nix-dev = mkNixos [ ./hosts/nix-dev ]; + c1 = mkNixos "x86_64-linux" [ ./hosts/c1 ]; + c2 = mkNixos "x86_64-linux" [ ./hosts/c2 ]; + c3 = mkNixos "x86_64-linux" [ ./hosts/c3 ]; + nix-dev = mkNixos "x86_64-linux" [ ./hosts/nix-dev ]; + alo-cloud-1 = mkNixos "aarch64-linux" [./hosts/alo-cloud-1 ]; }; deploy = { @@ -62,6 +63,13 @@ path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.nix-dev; }; }; + alo-cloud-1 = { + hostname = "49.13.163.72"; + profiles.system = { + user = "root"; + path = deploy-rs.lib.aarch64-linux.activate.nixos self.nixosConfigurations.alo-cloud-1; + }; + }; }; }; diff --git a/hosts/alo-cloud-1/default.nix b/hosts/alo-cloud-1/default.nix new file mode 100644 index 0000000..2b5867e --- /dev/null +++ b/hosts/alo-cloud-1/default.nix @@ -0,0 +1,14 @@ +{ pkgs, inputs, ... }: +{ + imports = [ + ../../common/global + ../../common/cloud-node.nix + ./hardware.nix + ]; + + boot.initrd.kernelModules = [ "virtio_gpu" ]; + boot.kernelParams = [ "console=tty" ]; + + networking.hostName = "alo-cloud-1"; + services.tailscaleAutoconnect.authkey = "tskey-auth-kbdARC7CNTRL-pNQddmWV9q5C2sRV3WGep5ehjJ1qvcfD"; +} diff --git a/hosts/alo-cloud-1/hardware.nix b/hosts/alo-cloud-1/hardware.nix new file mode 100644 index 0000000..1974535 --- /dev/null +++ b/hosts/alo-cloud-1/hardware.nix @@ -0,0 +1,46 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/profiles/qemu-guest.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "virtio_pci" "virtio_scsi" "usbhid" "sr_mod" ]; + boot.kernelModules = [ ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/4275af2a-648c-4778-8090-7e5ef5c2846b"; + fsType = "btrfs"; + options = [ "subvol=root" ]; + }; + + fileSystems."/nix" = + { device = "/dev/disk/by-uuid/4275af2a-648c-4778-8090-7e5ef5c2846b"; + fsType = "btrfs"; + options = [ "subvol=nix" ]; + }; + + fileSystems."/persist" = + { device = "/dev/disk/by-uuid/4275af2a-648c-4778-8090-7e5ef5c2846b"; + fsType = "btrfs"; + options = [ "subvol=persist" ]; + }; + + fileSystems."/var/log" = + { device = "/dev/disk/by-uuid/4275af2a-648c-4778-8090-7e5ef5c2846b"; + fsType = "btrfs"; + options = [ "subvol=log" ]; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/FF9C-DC81"; + fsType = "vfat"; + }; + + swapDevices = [ { + device = "/dev/disk/by-label/swap"; + }]; + + nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; +}