mirror of https://gitlab.crans.org/nounous/nixos
100 lines
2.8 KiB
Nix
100 lines
2.8 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
|
|
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 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
|
|
mount /dev/$DISK /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";
|
|
|
|
}
|