mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 13:40:28 +03:00
nixos/virtualisation/linode-image: init (#155426)
This commit is contained in:
parent
88a2353643
commit
28e90d3709
5 changed files with 157 additions and 0 deletions
75
nixos/modules/virtualisation/linode-config.nix
Normal file
75
nixos/modules/virtualisation/linode-config.nix
Normal file
|
@ -0,0 +1,75 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
with lib;
|
||||
{
|
||||
imports = [ ../profiles/qemu-guest.nix ];
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
|
||||
permitRootLogin = "prohibit-password";
|
||||
passwordAuthentication = mkDefault false;
|
||||
};
|
||||
|
||||
networking = {
|
||||
usePredictableInterfaceNames = false;
|
||||
useDHCP = false;
|
||||
interfaces.eth0 = {
|
||||
useDHCP = true;
|
||||
|
||||
# Linode expects IPv6 privacy extensions to be disabled, so disable them
|
||||
# See: https://www.linode.com/docs/guides/manual-network-configuration/#static-vs-dynamic-addressing
|
||||
tempAddress = "disabled";
|
||||
};
|
||||
};
|
||||
|
||||
# Install diagnostic tools for Linode support
|
||||
environment.systemPackages = with pkgs; [
|
||||
inetutils
|
||||
mtr
|
||||
sysstat
|
||||
];
|
||||
|
||||
fileSystems."/" = {
|
||||
fsType = "ext4";
|
||||
device = "/dev/sda";
|
||||
autoResize = true;
|
||||
};
|
||||
|
||||
swapDevices = mkDefault [{ device = "/dev/sdb"; }];
|
||||
|
||||
# Enable LISH and Linode Booting w/ GRUB
|
||||
boot = {
|
||||
# Add Required Kernel Modules
|
||||
# NOTE: These are not documented in the install guide
|
||||
initrd.availableKernelModules = [
|
||||
"virtio_pci"
|
||||
"virtio_scsi"
|
||||
"ahci"
|
||||
"sd_mod"
|
||||
];
|
||||
|
||||
# Set Up LISH Serial Connection
|
||||
kernelParams = [ "console=ttyS0,19200n8" ];
|
||||
kernelModules = [ "virtio_net" ];
|
||||
|
||||
loader = {
|
||||
# Increase Timeout to Allow LISH Connection
|
||||
# NOTE: The image generator tries to set a timeout of 0, so we must force
|
||||
timeout = lib.mkForce 10;
|
||||
|
||||
grub = {
|
||||
enable = true;
|
||||
version = 2;
|
||||
forceInstall = true;
|
||||
device = "nodev";
|
||||
|
||||
# Allow serial connection for GRUB to be able to use LISH
|
||||
extraConfig = ''
|
||||
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
|
||||
terminal_input serial;
|
||||
terminal_output serial
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue