{ pkgs, lib, modulesPath, ... }: { imports = [ (modulesPath + "/installer/cd-dvd/installation-cd-minimal.nix") ]; networking = { hostName = "crans-iso"; dhcpcd.enable = false; nameservers = [ "172.16.10.128" ]; }; nix = { settings.experimental-features = [ "nix-command" "flakes" ]; extraOptions = "experimental-features = nix-command flakes"; }; boot = { kernelParams = [ "console=ttyS0,115200" ]; kernelPackages = pkgs.linuxPackages_latest; supportedFilesystems = lib.mkForce [ "btrfs" "vfat" "zfs"]; }; services.openssh = { enable = true; }; nixpkgs.config.allowUnfree = true; # Enable some utility programs. programs.git.enable = true; programs.htop.enable = true; programs.neovim.enable = true; programs.screen.enable = true; programs.tmux.enable = true; programs.vim.enable = true; environment.systemPackages = let crans-ip-config = ( pkgs.writeShellScriptBin "crans-ip-config" '' #!/usr/bin/env bash echo -n "ID : " read ID ip -c l echo -n "vlan 10, interface ensXX : " read INTERFACE10 ip addr add 172.16.10.$ID/24 dev ens$INTERFACE10 ip link set ens$INTERFACE10 up echo -n "souhaitez-vous configurer le vlan 3 ? (o/N)" read REP if [[ "$REP" == [oOyY] ]]; then echo -n "vlan 3, interface ensXX : " read INTERFACE3 ip addr add 172.16.3.$ID/24 dev ens$INTERFACE3 ip link set ens$INTERFACE10 up ip route add default via 172.16.3.99 else ip route add default via 172.16.10.101 fi '' ); crans-disk-config = ( pkgs.writeShellScriptBin "crans-disk-config" '' #!/usr/bin/env bash lsblk echo -n "disque /dev/XXX : " read DISK parted /dev/$DISK -- mklabel msdos parted /dev/$DISK -- mkpart primary 1MB 100% parted /dev/$DISK -- set 1 boot on mkfs.ext4 -L nixos /dev/$${DISK}1 mount /dev/$${DISK}1 /mnt nixos-generate-config --root /mnt cp /mnt/etc/nixos/hardware-configuration.nix /root/ rm -rf /mnt/etc/nixos git clone https://gitlab.adm.crans.org/nounous/nixos.git /mnt/etc/nixos cp /root/hardware-configuration.nix /mnt/etc/nixos/ rm /root/hardware-configuration.nix echo "Veuillez déplacer le fichier /mnt/etc/nixos/hardware-configuration.nix à l'emplacement de la vm en cours d'installation." echo "Pensez également à vous mettre sur la branche appropriée" '' ); in with pkgs; [ bat fd helix nfs-utils ripgrep shelldap crans-ip-config crans-disk-config ]; users.users.root = { password = "crans"; initialHashedPassword = lib.mkForce null; }; }