forked from lubiland/hardware-setup
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.5 KiB
Markdown
38 lines
1.5 KiB
Markdown
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):
|
|
```sh
|
|
# (!) 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/pandro/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`
|