2 Commits
Author SHA1 Message Date
Noah Masur 66661ba048 configure arrow host for AWS deployment 2026-10-11 17:33:17 -04:00
Noah Masur ba834215a4 enable work aws for arrow 2026-10-11 17:33:17 -04:00
3 changed files with 94 additions and 16 deletions

No files matched your search

+9
View File
@@ -1,5 +1,14 @@
# Changelog
## 2026-10-11
- **Configured `arrow` host for AWS EC2 deployment**:
- Imported `${modulesPath}/virtualisation/amazon-image.nix` in `hosts/x86_64-linux/arrow/default.nix` for native EC2 configuration (EBS root filesystem with auto-resize, partition auto-growth, serial console on `ttyS0`, and EC2 udev utilities).
- Explicitly disabled `boot.loader.systemd-boot` and enabled BIOS `boot.loader.grub` to override `systemd-boot` default set by the server profile on non-UEFI EC2 partition layouts.
- Enabled `nmasur.presets.services.openssh-aws.enable` to resolve SSH `PermitRootLogin` conflicting definitions between the base SSH preset and `amazon-image.nix`.
- Added `ssm-user` to the `wheel` group for elevation when connecting via AWS Systems Manager Session Manager.
- Removed obsolete dummy `fileSystems."/boot"` and `fileSystems."/"` declarations.
## 2026-09-29
- **Separated Restic backup repositories per host**:
+23 -16
View File
@@ -2,9 +2,24 @@
# System configuration for temporary VM
rec {
imports = [
({ modulesPath, ... }: {
imports = [ "${modulesPath}/virtualisation/amazon-image.nix" ];
})
];
# Hardware
networking.hostName = "arrow";
# Ensure BIOS GRUB is used instead of server profile's systemd-boot
boot.loader.systemd-boot.enable = false;
boot.loader.grub.enable = true;
# Resolves PermitRootLogin conflict with amazon-image.nix
nmasur.presets.services.openssh-aws.enable = true;
users.users.ssm-user.extraGroups = [ "wheel" ];
nmasur.settings = {
username = "noah";
fullName = "Noah Masur";
@@ -24,24 +39,16 @@ rec {
nmasur.profiles = {
common.enable = true;
linux-base.enable = true;
llm-development.enable = true;
work-base.enable = true;
};
home.stateVersion = "23.05";
nmasur.presets.programs.git-work.work = {
name = "Noah-Masur_1701";
email = "${nmasur.settings.username}@take2games.com";
};
home.stateVersion = "26.05";
};
system.stateVersion = "23.05";
# These filesystems are ignored by nixos-generators
# This is the root filesystem containing NixOS
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
# This is the boot filesystem for Grub
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
};
system.stateVersion = "26.05";
}
@@ -0,0 +1,62 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.nmasur.profiles.work-base;
in
{
options.nmasur.profiles.work-base.enable = lib.mkEnableOption "base work config";
config = lib.mkIf cfg.enable {
home.packages = [
pkgs.actionlint # Lint for GitHub Actions Workflows
pkgs.claude-code # AI LLM Agent
pkgs.stable.visidata # CSV inspector
pkgs.dos2unix # Convert Windows text files
pkgs.inetutils # Includes telnet
pkgs.gnupg # Encryption
pkgs.awscli2
pkgs.ssm-session-manager-plugin
pkgs.awslogs
pkgs.pre-commit
pkgs.google-cloud-sdk
pkgs.ipcalc # Make IP network calculations
pkgs.nmasur.aws-ec2 # Browse EC2 instances
pkgs.nmasur.terraform-init # Quick shortcut for initializing Terraform backend
pkgs.uv # Python packaging
];
programs.fish.shellAliases.ec2 = "aws-ec2";
nmasur.presets = {
programs = {
# _1password.enable = lib.mkDefault true;
atuin.enable = lib.mkDefault true;
aws-ssh.enable = lib.mkDefault true;
bash.enable = lib.mkDefault true;
bat.enable = lib.mkDefault true;
direnv.enable = lib.mkDefault true;
dotfiles.enable = lib.mkDefault true;
fd.enable = lib.mkDefault true;
fish.enable = lib.mkDefault true;
fzf.enable = lib.mkDefault true;
git-work.enable = lib.mkDefault true;
git.enable = lib.mkDefault true;
github.enable = lib.mkDefault true;
jujutsu.enable = lib.mkDefault true;
ripgrep.enable = lib.mkDefault true;
starship.enable = lib.mkDefault true;
terraform.enable = lib.mkDefault true;
};
};
};
}