minimal nixos configuration

cephiroth
root 2024-02-03 19:15:18 +00:00
parent be1b1a6188
commit 29326601f2
11 changed files with 266 additions and 1 deletions

View File

@ -20,7 +20,13 @@
systems = [ "x86_64-linux" ];
flake = { };
flake = with nixpkgs.lib; {
nixosConfigurations = {
two = nixosSystem {
modules = [ ./hosts/vm/two ];
};
};
};
perSystem = { config, pkgs, ... }: {
treefmt = {

58
hardware.nix 100644
View File

@ -0,0 +1,58 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "tmpfs";
fsType = "tmpfs";
};
fileSystems."/iso" =
{ device = "/dev/disk/by-uuid/1980-01-01-00-00-00-00";
fsType = "iso9660";
};
fileSystems."/nix/.ro-store" =
{ device = "/iso/nix-store.squashfs";
fsType = "squashfs";
options = [ "loop" ];
};
fileSystems."/nix/.rw-store" =
{ device = "tmpfs";
fsType = "tmpfs";
};
fileSystems."/nix/store" =
{ device = "overlay";
fsType = "overlay";
};
fileSystems."/mnt" =
{ device = "/dev/disk/by-uuid/78bbf8a3-b4d6-4f1b-824e-4a9132aae372";
fsType = "ext4";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
# networking.interfaces.ens19.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View File

@ -0,0 +1,10 @@
{ ... }:
{
imports = [
./hardware-configuration.nix
./networking.nix
../../../modules/crans
];
}

View File

@ -0,0 +1,58 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "tmpfs";
fsType = "tmpfs";
};
fileSystems."/iso" =
{ device = "/dev/disk/by-uuid/1980-01-01-00-00-00-00";
fsType = "iso9660";
};
fileSystems."/nix/.ro-store" =
{ device = "/iso/nix-store.squashfs";
fsType = "squashfs";
options = [ "loop" ];
};
fileSystems."/nix/.rw-store" =
{ device = "tmpfs";
fsType = "tmpfs";
};
fileSystems."/nix/store" =
{ device = "overlay";
fsType = "overlay";
};
fileSystems."/mnt" =
{ device = "/dev/disk/by-uuid/78bbf8a3-b4d6-4f1b-824e-4a9132aae372";
fsType = "ext4";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
# networking.interfaces.ens19.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View File

@ -0,0 +1,32 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "virtio_scsi" "sd_mod" "sr_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/78bbf8a3-b4d6-4f1b-824e-4a9132aae372";
fsType = "ext4";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.ens18.useDHCP = lib.mkDefault true;
# networking.interfaces.ens19.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}

View File

@ -0,0 +1,53 @@
{ ... }:
{
networking = {
interfaces = {
ens18 = {
ipv4 = {
addresses = [{
address = "172.16.10.135";
prefixLength = 24;
}];
};
ipv6 = {
addresses = [{
address = "fd00::10:0:ff:fe01:3510";
prefixLength = 64;
}];
};
};
ens19 = {
ipv4 = {
addresses = [{
address = "172.16.3.135";
prefixLength = 24;
}];
routes = [{
address = "0.0.0.0";
via = "172.16.3.99";
prefixLength = 0;
}];
};
ipv6 = {
addresses = [{
address = "2a0c:700:3::ff:fe01:3503";
prefixLength = 64;
}];
routes = [{
address = "::";
via = "2a0c:700:3::ff:fe00:9903";
prefixLength = 0;
}];
};
};
};
};
}

View File

@ -0,0 +1,9 @@
{ ... }:
{
imports = [
./locale.nix
./networking.nix
./ntp.nix
];
}

View File

@ -0,0 +1,14 @@
{ pkgs, ... }:
{
fileSystems.home_nounou = {
mountPoint = "/home_nounou";
device = "172.16.10.1:/pool/home";
fsType = "nfs";
options = [ "rw" "nosuid" ];
};
environment.systemPackages = with pkgs; [
nfs-utils
];
}

View File

@ -0,0 +1,7 @@
{ ... }:
{
i18n.defaultLocale = "en_US.UTF-8";
console.keyMap = "fr";
time.timeZone = "Europe/Paris";
}

View File

@ -0,0 +1,10 @@
{ ... }:
{
# Les interfaces ne sont pas déclarées ici : elles sont propres à chaque VM.
networking = {
useDHCP = false;
firewall.enable = false;
nameservers = [ "172.16.10.128" ];
};
}

View File

@ -0,0 +1,8 @@
{ ... }:
{
services.timesyncd = {
enable = true;
servers = [ "ntp.adm.crans.org" ];
};
}