infest prepare: add hetzner_rescue support
This commit is contained in:
parent
813535d526
commit
26c4dfbdfc
@ -21,6 +21,10 @@ prepare() {(
|
|||||||
esac
|
esac
|
||||||
;;
|
;;
|
||||||
debian)
|
debian)
|
||||||
|
if grep -Fq Hetzner /etc/motd; then
|
||||||
|
prepare_hetzner_rescue "$@"
|
||||||
|
exit
|
||||||
|
fi
|
||||||
case $VERSION_ID in
|
case $VERSION_ID in
|
||||||
7)
|
7)
|
||||||
prepare_debian "$@"
|
prepare_debian "$@"
|
||||||
@ -72,7 +76,7 @@ prepare_debian() {
|
|||||||
type bzip2 2>/dev/null || apt-get install bzip2
|
type bzip2 2>/dev/null || apt-get install bzip2
|
||||||
type git 2>/dev/null || apt-get install git
|
type git 2>/dev/null || apt-get install git
|
||||||
type rsync 2>/dev/null || apt-get install rsync
|
type rsync 2>/dev/null || apt-get install rsync
|
||||||
type curl 2>/dev/null || apt-get install curl
|
type curl 2>/dev/null || apt-get install curl
|
||||||
prepare_common
|
prepare_common
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,6 +98,31 @@ prepare_nixos_iso() {
|
|||||||
sed -i "s@NIX_PATH=\"[^\"]*\"@NIX_PATH=$target_path@" bin/nixos-install
|
sed -i "s@NIX_PATH=\"[^\"]*\"@NIX_PATH=$target_path@" bin/nixos-install
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prepare_hetzner_rescue() {
|
||||||
|
mountpoint /mnt
|
||||||
|
|
||||||
|
type bzip2 2>/dev/null || apt-get install bzip2
|
||||||
|
type git 2>/dev/null || apt-get install git
|
||||||
|
type rsync 2>/dev/null || apt-get install rsync
|
||||||
|
type curl 2>/dev/null || apt-get install curl
|
||||||
|
|
||||||
|
mkdir -p /mnt/"$target_path"
|
||||||
|
mkdir -p "$target_path"
|
||||||
|
|
||||||
|
if ! mountpoint "$target_path"; then
|
||||||
|
mount --rbind /mnt/"$target_path" "$target_path"
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p bin
|
||||||
|
rm -f bin/nixos-install
|
||||||
|
cp "$(type -p nixos-install)" bin/nixos-install
|
||||||
|
sed -i "s@NIX_PATH=\"[^\"]*\"@NIX_PATH=$target_path@" bin/nixos-install
|
||||||
|
|
||||||
|
_prepare_nix_users
|
||||||
|
_prepare_nix
|
||||||
|
_prepare_nixos_install
|
||||||
|
}
|
||||||
|
|
||||||
get_nixos_install() {
|
get_nixos_install() {
|
||||||
echo "installing nixos-install" 2>&1
|
echo "installing nixos-install" 2>&1
|
||||||
c=$(mktemp)
|
c=$(mktemp)
|
||||||
@ -107,24 +136,10 @@ EOF
|
|||||||
nix-env -i -A config.system.build.nixos-install -f "<nixpkgs/nixos>"
|
nix-env -i -A config.system.build.nixos-install -f "<nixpkgs/nixos>"
|
||||||
rm -v $c
|
rm -v $c
|
||||||
}
|
}
|
||||||
|
|
||||||
prepare_common() {(
|
prepare_common() {(
|
||||||
|
|
||||||
if ! getent group nixbld >/dev/null; then
|
_prepare_nix_users
|
||||||
groupadd -g 30000 -r nixbld
|
|
||||||
fi
|
|
||||||
for i in `seq 1 10`; do
|
|
||||||
if ! getent passwd nixbld$i 2>/dev/null; then
|
|
||||||
useradd \
|
|
||||||
-d /var/empty \
|
|
||||||
-g 30000 \
|
|
||||||
-G 30000 \
|
|
||||||
-l \
|
|
||||||
-M \
|
|
||||||
-s /sbin/nologin \
|
|
||||||
-u $(expr 30000 + $i) \
|
|
||||||
nixbld$i
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# mount install directory
|
# mount install directory
|
||||||
@ -173,10 +188,12 @@ prepare_common() {(
|
|||||||
mount --bind /nix /mnt/nix
|
mount --bind /nix /mnt/nix
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#
|
_prepare_nix
|
||||||
# install nix
|
|
||||||
#
|
|
||||||
|
|
||||||
|
_prepare_nixos_install
|
||||||
|
)}
|
||||||
|
|
||||||
|
_prepare_nix() {(
|
||||||
# install nix on host (cf. https://nixos.org/nix/install)
|
# install nix on host (cf. https://nixos.org/nix/install)
|
||||||
if ! test -e /root/.nix-profile/etc/profile.d/nix.sh; then
|
if ! test -e /root/.nix-profile/etc/profile.d/nix.sh; then
|
||||||
(
|
(
|
||||||
@ -201,8 +218,31 @@ prepare_common() {(
|
|||||||
if ! mountpoint "$target_path"; then
|
if ! mountpoint "$target_path"; then
|
||||||
mount --rbind /mnt/"$target_path" "$target_path"
|
mount --rbind /mnt/"$target_path" "$target_path"
|
||||||
fi
|
fi
|
||||||
|
)}
|
||||||
|
|
||||||
|
_prepare_nix_users() {(
|
||||||
|
if ! getent group nixbld >/dev/null; then
|
||||||
|
groupadd -g 30000 -r nixbld
|
||||||
|
fi
|
||||||
|
for i in `seq 1 10`; do
|
||||||
|
if ! getent passwd nixbld$i 2>/dev/null; then
|
||||||
|
useradd \
|
||||||
|
-d /var/empty \
|
||||||
|
-g 30000 \
|
||||||
|
-G 30000 \
|
||||||
|
-l \
|
||||||
|
-M \
|
||||||
|
-s /sbin/nologin \
|
||||||
|
-u $(expr 30000 + $i) \
|
||||||
|
nixbld$i
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
)}
|
||||||
|
|
||||||
|
|
||||||
|
_prepare_nixos_install() {
|
||||||
get_nixos_install
|
get_nixos_install
|
||||||
|
|
||||||
mkdir -p bin
|
mkdir -p bin
|
||||||
rm -f bin/nixos-install
|
rm -f bin/nixos-install
|
||||||
cp "$(type -p nixos-install)" bin/nixos-install
|
cp "$(type -p nixos-install)" bin/nixos-install
|
||||||
@ -212,6 +252,6 @@ prepare_common() {(
|
|||||||
echo '. /root/.nix-profile/etc/profile.d/nix.sh' >> .bashrc
|
echo '. /root/.nix-profile/etc/profile.d/nix.sh' >> .bashrc
|
||||||
echo 'PATH=$HOME/bin:$PATH #krebs' >> .bashrc
|
echo 'PATH=$HOME/bin:$PATH #krebs' >> .bashrc
|
||||||
fi
|
fi
|
||||||
)}
|
}
|
||||||
|
|
||||||
prepare "$@"
|
prepare "$@"
|
||||||
|
Loading…
Reference in New Issue
Block a user