nixos/hosts/iso/default.nix

104 lines
2.9 KiB
Nix

{ 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;
};
}