No description
Find a file
lub fc0002114c remove smartmontools
nvme-cli also can display S.M.A.R.T. values

lol
2025-09-20 11:52:59 +02:00
authorized_keys update keys 2023-08-11 19:15:12 +02:00
config/etc add sysctl for inotify 2025-09-20 10:53:34 +02:00
hardware fixup of last commit 2025-09-20 08:52:02 +02:00
post-debootstrap-installer.sh remove smartmontools 2025-09-20 11:52:59 +02:00
README.md streamline readme example 2025-09-20 09:00:32 +02:00
reset.sh make reset multithreaded and shorter 2023-08-11 18:45:22 +02:00
setup.sh use longform arguemtsn for mkdir 2025-09-20 10:15:42 +02:00

These scripts setup a blank hardware server according to our requirements including partitions, raids, debootstrap, package installation and various other configuration. The goal is to create a server ready to join into the swarm.

Usage (from a live system):

# (!) wipes the start sectors of all disks (!)
# (!) review before executing (!)
./reset.sh
reboot

./setup.sh <template> <fqdn>

# example:
apt-get update && apt-get -y dist-upgrade && git clone https://gitea.lubiland.de/lubiland/hardware-setup.git && cd hardware-setup
./setup.sh hetzner_ax51-nvme asef.lubi.link


# Unlock the disk after booting the server from disk:
# Dropbear is configured on 222 and only allows the user root
ssh -p 222 root@<fqdn>
cryptroot-unlock

setup.sh executes the hardware specific template files, debootstraps and invokes the actual installer inside the fresh environment.
As much as possible should be done in the chroot, as only there we have control over the software (the live system is normally provided by the hardware provider).

Templates (hardware/*) consist of three files:

  • esp - a symlink to the desired ESP partition
  • parted.sh - script to prepare the partitions. Should create ESP (/boot/efi), md0 (/) and md1 (/boot)
  • network.sh - creates the neccessary configs in /etc/systemd/network

config/* gets copied to the chroot and contains static config files

authorized_keys/* is used to create the users and populate their respective ~/.ssh/authorized_keys