diff --git a/Makefile b/Makefile index 3dbddfad..0cb77067 100644 --- a/Makefile +++ b/Makefile @@ -12,6 +12,10 @@ install: result channels update config @nixos-generate-config --root "$(PREFIX)" @nixos-install --root "$(PREFIX)" +install-linode: result channels update + @sudo mkdir -p "$(NIXOS_PREFIX)" + @echo "(import $(PWD)/dotfiles \"linode\") \"$$(hostname)\"" | sudo tee "$(NIXOS_PREFIX)/configuration.nix" + upgrade: update switch switch: diff --git a/machines/linode/default.nix b/machines/linode/default.nix new file mode 100644 index 00000000..b89111ce --- /dev/null +++ b/machines/linode/default.nix @@ -0,0 +1,69 @@ +# 1. Create three (3) disk images: +# - Installer: 1024mb +# - Swap: 512mb +# - NixOS: rest +# +# 2. Boot in rescue mode with: +# - /dev/sda -> Installer +# - /dev/sdb -> Swap +# - /dev/sdc -> NixOS +# +# 3. Once booted into Finnix (step 2) pipe this script to sh: +# iso= +# update-ca-certificates +# curl $url | dd of=/dev/sda +# +# 4. Install these dotfiles with +# git clone https://github.com/hlissner/dotfiles ~/.dotfiles +# ln -s ~/.dotfiles /etc/dotfiles +# cd ~/.dotfiles +# mk install-linode +# +# 4. Create a configuration profile: +# - Kernel: GRUB 2 +# - /dev/sda -> NixOS +# - /dev/sdb -> Swap +# - Helpers: distro and auto network helpers = off +# +# 5. Reboot into profile. + +host: +{ config, lib, pkgs, ... }: +{ + environment.systemPackages = + with pkgs; [ inetutils mtr sysstat git ]; + + imports = [ + ../. + + + + + "./${host}.nix" + ]; + + # GRUB + boot = { + kernelParams = [ "console=ttyS0" ]; + loader = { + timeout = 10; + grub = { + enable = true; + version = 2; + device = "nodev"; + copyKernels = true; + fsIdentifier = "provided"; + extraConfig = "serial; terminal_input serial; terminal_output serial"; + }; + # Disable globals + systemd-boot.enable = false; + efi.canTouchEfiVariables = false; + }; + }; + + networking.useDHCP = false; + networking.usePredictableInterfaceNames = false; + networking.interfaces.eth0.useDHCP = true; + + time.timeZone = "America/Toronto"; +} diff --git a/options/linode.nix b/options/linode.nix deleted file mode 100644 index e69de29b..00000000