mirror of
https://github.com/terem42/zfs-hetzner-vm.git
synced 2025-12-23 07:18:37 +00:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a283542850 | ||
|
|
c23b735462 | ||
|
|
c7b8d13be8 | ||
|
|
d8f796dc38 | ||
|
|
3d93256d17 | ||
|
|
37baec84ca | ||
|
|
3b9a132a1d | ||
|
|
fecb5ca25c | ||
|
|
59e7e2352f | ||
|
|
c1122406eb | ||
|
|
40d0221d18 | ||
|
|
f41b62ad32 | ||
|
|
ccccb6f175 |
24
.github/workflows/shellcheck.yml
vendored
Normal file
24
.github/workflows/shellcheck.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
name: shellcheck
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [master, develop]
|
||||
pull_request:
|
||||
branches: [master]
|
||||
|
||||
jobs:
|
||||
Shellcheck:
|
||||
name: Shellcheck
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Code checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Check scripts with Shellcheck
|
||||
uses: essentialkaos/shellcheck-action@v1
|
||||
with:
|
||||
files: hetzner-debian10-zfs-setup.sh hetzner-debian11-zfs-setup.sh hetzner-ubuntu18-zfs-setup.sh hetzner-ubuntu20-zfs-setup.sh
|
||||
severity: error
|
||||
format: gcc
|
||||
shell: bash
|
||||
@@ -1,5 +1,7 @@
|
||||
# zfs-hetzner-vm
|
||||
|
||||
[](https://github.com/terem42/zfs-hetzner-vm/actions/workflows/shellcheck.yml)
|
||||
|
||||
Scripts to install Debian 11, 10 or Ubuntu 20, 18 with ZFS root on Hetzner root servers (virtual and dedicated).<br/>
|
||||
__WARNING:__ all data on the disk will be destroyed.
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@ c_deb_security_repo=http://mirror.hetzner.de/debian/security
|
||||
|
||||
c_default_zfs_arc_max_mb=250
|
||||
c_default_bpool_tweaks="-o ashift=12 -O compression=lz4"
|
||||
c_default_rpool_tweaks="-o ashift=12 -O acltype=posixacl -O compression=lz4 -O dnodesize=auto -O relatime=on -O xattr=sa -O normalization=formD"
|
||||
c_default_rpool_tweaks="-o ashift=12 -O acltype=posixacl -O compression=zstd-9 -O dnodesize=auto -O relatime=on -O xattr=sa -O normalization=formD"
|
||||
c_default_hostname=terem
|
||||
c_zfs_mount_dir=/mnt
|
||||
c_log_dir=$(dirname "$(mktemp)")/zfs-hetzner-vm
|
||||
@@ -499,7 +499,7 @@ echo "======= installing zfs on rescue system =========="
|
||||
apt install --yes zfs-dkms zfsutils-linux
|
||||
add-apt-repository -r 'deb http://ppa.launchpad.net/jonathonf/zfs/ubuntu focal main'
|
||||
apt update
|
||||
find /usr/local/sbin/ -type l | xargs rm
|
||||
find /usr/local/sbin/ -type l -exec rm {} +
|
||||
zfs --version
|
||||
|
||||
echo "======= partitioning the disk =========="
|
||||
@@ -542,10 +542,12 @@ echo "======= create zfs pools and datasets =========="
|
||||
|
||||
zpool create \
|
||||
$v_bpool_tweaks -O canmount=off -O devices=off \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
-O mountpoint=/boot -R $c_zfs_mount_dir -f \
|
||||
$v_bpool_name $pools_mirror_option "${bpool_disks_partitions[@]}"
|
||||
|
||||
echo -n "$v_passphrase" | zpool create \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
$v_rpool_tweaks \
|
||||
"${encryption_options[@]}" \
|
||||
-O mountpoint=/ -R $c_zfs_mount_dir -f \
|
||||
@@ -728,25 +730,8 @@ chroot_execute "dpkg-reconfigure openssh-server -f noninteractive"
|
||||
echo "======= set root password =========="
|
||||
chroot_execute "echo root:$(printf "%q" "$v_root_password") | chpasswd"
|
||||
|
||||
echo "======= setting up zfs services =========="
|
||||
chroot_execute "cat > /etc/systemd/system/zfs-import-bpool.service <<UNIT
|
||||
[Unit]
|
||||
DefaultDependencies=no
|
||||
Before=zfs-import-scan.service
|
||||
Before=zfs-import-cache.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStartPre=/bin/sh -c '[ -f /etc/zfs/zpool.cache ] && mv /etc/zfs/zpool.cache /etc/zfs/preboot_zpool.cache || true'
|
||||
ExecStart=/sbin/zpool import -N -o cachefile=none -d /dev/disk/by-id $v_bpool_name
|
||||
ExecStartPost=/bin/sh -c '[ -f /etc/zfs/preboot_zpool.cache ] && mv /etc/zfs/preboot_zpool.cache /etc/zfs/zpool.cache || true'
|
||||
|
||||
[Install]
|
||||
WantedBy=zfs-import.target
|
||||
UNIT"
|
||||
|
||||
chroot_execute "systemctl enable zfs-import-bpool.service"
|
||||
echo "======= setting up zfs cache =========="
|
||||
cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache
|
||||
|
||||
echo "========setting up zfs module parameters========"
|
||||
chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024)) >> /etc/modprobe.d/zfs.conf"
|
||||
@@ -841,7 +826,7 @@ fi
|
||||
|
||||
echo "======= setting mountpoints =========="
|
||||
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/debian"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/debian /boot zfs nodev,relatime,x-systemd.requires=zfs-import-bpool.service 0 0 > /etc/fstab"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/debian /boot zfs nodev,relatime,x-systemd.requires=zfs-mount.service,x-systemd.device-timeout=10 0 0 > /etc/fstab"
|
||||
|
||||
chroot_execute "zfs set mountpoint=legacy $v_rpool_name/var/log"
|
||||
chroot_execute "echo $v_rpool_name/var/log /var/log zfs nodev,relatime 0 0 >> /etc/fstab"
|
||||
|
||||
@@ -499,7 +499,7 @@ echo "======= installing zfs on rescue system =========="
|
||||
apt install --yes zfs-dkms zfsutils-linux
|
||||
add-apt-repository -r 'deb http://ppa.launchpad.net/jonathonf/zfs/ubuntu focal main'
|
||||
apt update
|
||||
find /usr/local/sbin/ -type l | xargs rm
|
||||
find /usr/local/sbin/ -type l -exec rm {} +
|
||||
zfs --version
|
||||
|
||||
echo "======= partitioning the disk =========="
|
||||
@@ -542,11 +542,13 @@ echo "======= create zfs pools and datasets =========="
|
||||
|
||||
zpool create \
|
||||
$v_bpool_tweaks -O canmount=off -O devices=off \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
-O mountpoint=/boot -R $c_zfs_mount_dir -f \
|
||||
$v_bpool_name $pools_mirror_option "${bpool_disks_partitions[@]}"
|
||||
|
||||
echo -n "$v_passphrase" | zpool create \
|
||||
$v_rpool_tweaks \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
"${encryption_options[@]}" \
|
||||
-O mountpoint=/ -R $c_zfs_mount_dir -f \
|
||||
$v_rpool_name $pools_mirror_option "${rpool_disks_partitions[@]}"
|
||||
@@ -728,25 +730,9 @@ chroot_execute "dpkg-reconfigure openssh-server -f noninteractive"
|
||||
echo "======= set root password =========="
|
||||
chroot_execute "echo root:$(printf "%q" "$v_root_password") | chpasswd"
|
||||
|
||||
echo "======= setting up zfs services =========="
|
||||
chroot_execute "cat > /etc/systemd/system/zfs-import-bpool.service <<UNIT
|
||||
[Unit]
|
||||
DefaultDependencies=no
|
||||
Before=zfs-import-scan.service
|
||||
Before=zfs-import-cache.service
|
||||
echo "======= setting up zfs cache =========="
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStartPre=/bin/sh -c '[ -f /etc/zfs/zpool.cache ] && mv /etc/zfs/zpool.cache /etc/zfs/preboot_zpool.cache || true'
|
||||
ExecStart=/sbin/zpool import -N -o cachefile=none -d /dev/disk/by-id $v_bpool_name
|
||||
ExecStartPost=/bin/sh -c '[ -f /etc/zfs/preboot_zpool.cache ] && mv /etc/zfs/preboot_zpool.cache /etc/zfs/zpool.cache || true'
|
||||
|
||||
[Install]
|
||||
WantedBy=zfs-import.target
|
||||
UNIT"
|
||||
|
||||
chroot_execute "systemctl enable zfs-import-bpool.service"
|
||||
cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache
|
||||
|
||||
echo "========setting up zfs module parameters========"
|
||||
chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024)) >> /etc/modprobe.d/zfs.conf"
|
||||
@@ -844,7 +830,7 @@ fi
|
||||
|
||||
echo "======= setting mountpoints =========="
|
||||
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/debian"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/debian /boot zfs nodev,relatime,x-systemd.requires=zfs-import-bpool.service 0 0 > /etc/fstab"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/debian /boot zfs nodev,relatime,x-systemd.requires=zfs-mount.service,x-systemd.device-timeout=10 0 0 > /etc/fstab"
|
||||
|
||||
chroot_execute "zfs set mountpoint=legacy $v_rpool_name/var/log"
|
||||
chroot_execute "echo $v_rpool_name/var/log /var/log zfs nodev,relatime 0 0 >> /etc/fstab"
|
||||
|
||||
@@ -40,7 +40,7 @@ c_deb_security_repo=http://mirror.hetzner.de/ubuntu/security
|
||||
|
||||
c_default_zfs_arc_max_mb=250
|
||||
c_default_bpool_tweaks="-o ashift=12 -O compression=lz4"
|
||||
c_default_rpool_tweaks="-o ashift=12 -O acltype=posixacl -O compression=lz4 -O dnodesize=auto -O relatime=on -O xattr=sa -O normalization=formD"
|
||||
c_default_rpool_tweaks="-o ashift=12 -O acltype=posixacl -O compression=zstd-9 -O dnodesize=auto -O relatime=on -O xattr=sa -O normalization=formD"
|
||||
c_default_hostname=terem
|
||||
c_zfs_mount_dir=/mnt
|
||||
c_log_dir=$(dirname "$(mktemp)")/zfs-hetzner-vm
|
||||
@@ -466,7 +466,7 @@ echo "======= installing zfs on rescue system =========="
|
||||
apt install --yes zfs-dkms zfsutils-linux
|
||||
add-apt-repository -r 'deb http://ppa.launchpad.net/jonathonf/zfs/ubuntu focal main'
|
||||
apt update
|
||||
find /usr/local/sbin/ -type l | xargs rm
|
||||
find /usr/local/sbin/ -type l -exec rm {} +
|
||||
zfs --version
|
||||
|
||||
echo "======= partitioning the disk =========="
|
||||
@@ -509,11 +509,13 @@ echo "======= create zfs pools and datasets =========="
|
||||
|
||||
zpool create \
|
||||
$v_bpool_tweaks -O canmount=off -O devices=off \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
-O mountpoint=/boot -R $c_zfs_mount_dir -f \
|
||||
$v_bpool_name $pools_mirror_option "${bpool_disks_partitions[@]}"
|
||||
|
||||
echo -n "$v_passphrase" | zpool create \
|
||||
$v_rpool_tweaks \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
"${encryption_options[@]}" \
|
||||
-O mountpoint=/ -R $c_zfs_mount_dir -f \
|
||||
$v_rpool_name $pools_mirror_option "${rpool_disks_partitions[@]}"
|
||||
@@ -710,25 +712,8 @@ chroot_execute "dpkg-reconfigure openssh-server -f noninteractive"
|
||||
echo "======= set root password =========="
|
||||
chroot_execute "echo root:$(printf "%q" "$v_root_password") | chpasswd"
|
||||
|
||||
echo "======= setting up zfs services =========="
|
||||
chroot_execute "cat > /etc/systemd/system/zfs-import-bpool.service <<UNIT
|
||||
[Unit]
|
||||
DefaultDependencies=no
|
||||
Before=zfs-import-scan.service
|
||||
Before=zfs-import-cache.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStartPre=/bin/sh -c '[ -f /etc/zfs/zpool.cache ] && mv /etc/zfs/zpool.cache /etc/zfs/preboot_zpool.cache || true'
|
||||
ExecStart=/sbin/zpool import -N -o cachefile=none $v_bpool_name
|
||||
ExecStartPost=/bin/sh -c '[ -f /etc/zfs/preboot_zpool.cache ] && mv /etc/zfs/preboot_zpool.cache /etc/zfs/zpool.cache || true'
|
||||
|
||||
[Install]
|
||||
WantedBy=zfs-import.target
|
||||
UNIT"
|
||||
|
||||
chroot_execute "systemctl enable zfs-import-bpool.service"
|
||||
echo "======= setting up zfs cache =========="
|
||||
cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache
|
||||
|
||||
echo "========setting up zfs module parameters========"
|
||||
chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024)) >> /etc/modprobe.d/zfs.conf"
|
||||
@@ -833,7 +818,7 @@ chroot_execute "zfs set canmount=noauto rpool"
|
||||
|
||||
echo "======= setting mountpoints =========="
|
||||
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/ubuntu /boot zfs nodev,relatime,x-systemd.requires=zfs-import-bpool.service 0 0 > /etc/fstab"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/ubuntu /boot zfs nodev,relatime,x-systemd.requires=zfs-mount.service,x-systemd.device-timeout=10 0 0 > /etc/fstab"
|
||||
|
||||
chroot_execute "zfs set mountpoint=legacy $v_rpool_name/var/log"
|
||||
chroot_execute "echo $v_rpool_name/var/log /var/log zfs nodev,relatime 0 0 >> /etc/fstab"
|
||||
|
||||
@@ -40,7 +40,7 @@ c_deb_security_repo=http://mirror.hetzner.de/ubuntu/security
|
||||
|
||||
c_default_zfs_arc_max_mb=250
|
||||
c_default_bpool_tweaks="-o ashift=12 -O compression=lz4"
|
||||
c_default_rpool_tweaks="-o ashift=12 -O acltype=posixacl -O compression=lz4 -O dnodesize=auto -O relatime=on -O xattr=sa -O normalization=formD"
|
||||
c_default_rpool_tweaks="-o ashift=12 -O acltype=posixacl -O compression=zstd-9 -O dnodesize=auto -O relatime=on -O xattr=sa -O normalization=formD"
|
||||
c_default_hostname=terem
|
||||
c_zfs_mount_dir=/mnt
|
||||
c_log_dir=$(dirname "$(mktemp)")/zfs-hetzner-vm
|
||||
@@ -466,7 +466,7 @@ echo "======= installing zfs on rescue system =========="
|
||||
apt install --yes zfs-dkms zfsutils-linux
|
||||
add-apt-repository -r 'deb http://ppa.launchpad.net/jonathonf/zfs/ubuntu focal main'
|
||||
apt update
|
||||
find /usr/local/sbin/ -type l | xargs rm
|
||||
find /usr/local/sbin/ -type l -exec rm {} +
|
||||
zfs --version
|
||||
|
||||
echo "======= partitioning the disk =========="
|
||||
@@ -509,11 +509,13 @@ echo "======= create zfs pools and datasets =========="
|
||||
|
||||
zpool create \
|
||||
$v_bpool_tweaks -O canmount=off -O devices=off \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
-O mountpoint=/boot -R $c_zfs_mount_dir -f \
|
||||
$v_bpool_name $pools_mirror_option "${bpool_disks_partitions[@]}"
|
||||
|
||||
echo -n "$v_passphrase" | zpool create \
|
||||
$v_rpool_tweaks \
|
||||
-o cachefile=/etc/zfs/zpool.cache \
|
||||
"${encryption_options[@]}" \
|
||||
-O mountpoint=/ -R $c_zfs_mount_dir -f \
|
||||
$v_rpool_name $pools_mirror_option "${rpool_disks_partitions[@]}"
|
||||
@@ -711,25 +713,8 @@ chroot_execute "dpkg-reconfigure openssh-server -f noninteractive"
|
||||
echo "======= set root password =========="
|
||||
chroot_execute "echo root:$(printf "%q" "$v_root_password") | chpasswd"
|
||||
|
||||
echo "======= setting up zfs services =========="
|
||||
chroot_execute "cat > /etc/systemd/system/zfs-import-bpool.service <<UNIT
|
||||
[Unit]
|
||||
DefaultDependencies=no
|
||||
Before=zfs-import-scan.service
|
||||
Before=zfs-import-cache.service
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
RemainAfterExit=yes
|
||||
ExecStartPre=/bin/sh -c '[ -f /etc/zfs/zpool.cache ] && mv /etc/zfs/zpool.cache /etc/zfs/preboot_zpool.cache || true'
|
||||
ExecStart=/sbin/zpool import -N -o cachefile=none $v_bpool_name
|
||||
ExecStartPost=/bin/sh -c '[ -f /etc/zfs/preboot_zpool.cache ] && mv /etc/zfs/preboot_zpool.cache /etc/zfs/zpool.cache || true'
|
||||
|
||||
[Install]
|
||||
WantedBy=zfs-import.target
|
||||
UNIT"
|
||||
|
||||
chroot_execute "systemctl enable zfs-import-bpool.service"
|
||||
echo "======= setting up zfs cache =========="
|
||||
cp /etc/zfs/zpool.cache /mnt/etc/zfs/zpool.cache
|
||||
|
||||
echo "========setting up zfs module parameters========"
|
||||
chroot_execute "echo options zfs zfs_arc_max=$((v_zfs_arc_max_mb * 1024 * 1024)) >> /etc/modprobe.d/zfs.conf"
|
||||
@@ -834,7 +819,7 @@ chroot_execute "zfs set canmount=noauto rpool"
|
||||
|
||||
echo "======= setting mountpoints =========="
|
||||
chroot_execute "zfs set mountpoint=legacy $v_bpool_name/BOOT/ubuntu"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/ubuntu /boot zfs nodev,relatime,x-systemd.requires=zfs-import-bpool.service 0 0 > /etc/fstab"
|
||||
chroot_execute "echo $v_bpool_name/BOOT/ubuntu /boot zfs nodev,relatime,x-systemd.requires=zfs-mount.service,x-systemd.device-timeout=10 0 0 > /etc/fstab"
|
||||
|
||||
chroot_execute "zfs set mountpoint=legacy $v_rpool_name/var/log"
|
||||
chroot_execute "echo $v_rpool_name/var/log /var/log zfs nodev,relatime 0 0 >> /etc/fstab"
|
||||
|
||||
Reference in New Issue
Block a user