diff --git a/bash/ovh-rescue.sh b/bash/ovh-rescue.sh new file mode 100644 index 0000000..6f230ca --- /dev/null +++ b/bash/ovh-rescue.sh @@ -0,0 +1,84 @@ +function ovh-rescue-setup { + local release='buster' + local packages=( + 'byobu' 'mosh' + 'file' + 'grub-efi-amd64-bin' 'grub-pc-bin' + 'htop' 'iotop' + 'exa' 'ncdu' 'nnn' 'ranger' 'tree' + 'squashfs-tools' + 'uuid-runtime' + ) + local backports=( + 'cryptsetup-bin' + 'git' + 'rsync' + ) + # + echo -n "\ +en_US.UTF-8 UTF-8 +fr_FR.UTF-8 UTF-8 +" > '/etc/locale.gen' + rm --force '/usr/share/locale/locale.alias' + ln --symbolic '/etc/locale.alias' '/usr/share/locale/locale.alias' + locale-gen + # + echo -n "\ +Acquire::AllowInsecureRepositories False; +Acquire::AllowWeakRepositories False; +Acquire::AllowDowngradeToInsecureRepositories False; +Acquire::Check-Valid-Until True; +APT::Install-Recommends False; +APT::Install-Suggests False; +APT::Get::Show-Versions True; +Dir::Etc::SourceParts ''; +Dpkg::Progress True; +" > '/etc/apt/apt.conf' + echo -n "\ +deb https://deb.debian.org/debian buster main contrib non-free +deb https://deb.debian.org/debian buster-backports main contrib non-free +deb https://deb.debian.org/debian buster-updates main contrib non-free +deb https://deb.debian.org/debian-security buster/updates main contrib non-free +" > '/etc/apt/sources.list' + # + apt-get update + apt-get update + # + export DEBIAN_FRONTEND='noninteractive' + # + apt-get upgrade --assume-yes + # + apt-get install --assume-yes "${packages[@]}" + apt-get install --assume-yes \ + --target-release "${release}-backports" "${backports[@]}" + # + apt-get clean + # + link_bashrc +} + +function ovh-rescue-upload { +local host="${1}" +if [ "${host}" ] ; then + local user='root' + # + local user_host="${user}@${host}" + # + ssh-keygen -R "${host}" + # + ssh-copy-id \ + -o 'StrictHostKeyChecking=accept-new' \ + "${user_host}" + # upload root + rsync --delete --recursive "${MAIN_ROOT}/" "${user_host}:/etc/bash/" + # call setup + ssh "${user_host}" -- "source '/etc/bash/main.sh' ; ovh-rescue-setup" + # create session + ssh "${user_host}" -- byobu new-session -d + # attach session + mosh "${user_host}" -- byobu attach-session +else + echo 'Host?' + return 1 +fi +}