diff --git a/bash/ovh-rescue.sh b/bash/ovh-rescue.sh index 4487403..e63c7b2 100644 --- a/bash/ovh-rescue.sh +++ b/bash/ovh-rescue.sh @@ -1,12 +1,12 @@ -#! /usr/bin/env bash +#! /usr/bin/env sh ovh_rescue_configure() { local host="${1}" local packages=( - 'byobu' 'mosh' + "byobu" "mosh" ) # apt / conf - echo -n "\ + printf "\ Acquire::AllowInsecureRepositories False; Acquire::AllowWeakRepositories False; Acquire::AllowDowngradeToInsecureRepositories False; @@ -16,26 +16,26 @@ APT::Install-Suggests False; APT::Get::Show-Versions True; Dir::Etc::SourceParts ''; Dpkg::Progress True; -" > '/etc/apt/apt.conf' +" > "/etc/apt/apt.conf" # apt / sources - echo -n "\ + printf "\ 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' +" > "/etc/apt/sources.list" # bash / rc main_link_bashrc # host name hostname "${host}" # locales - echo -n "\ + printf "\ en_US.UTF-8 UTF-8 fr_FR.UTF-8 UTF-8 " > '/etc/locale.gen' # fix alias - rm --force '/usr/share/locale/locale.alias' - ln --symbolic '/etc/locale.alias' '/usr/share/locale/locale.alias' + rm --force "/usr/share/locale/locale.alias" + ln --symbolic "/etc/locale.alias" "/usr/share/locale/locale.alias" # generate locales locale-gen # update catalog @@ -48,25 +48,25 @@ fr_FR.UTF-8 UTF-8 apt_clean_cache } -function ovh-rescue-install { - local release='buster' +ovh_rescue_install() { + local release="buster" local packages=( # installed - 'parted' 'mdadm' 'lvm2' + "parted" "mdadm" "lvm2" # install - 'lshw' - 'file' 'micro' - 'grub-efi-amd64-bin' 'grub-pc-bin' - 'htop' 'iotop' 'lsof' - 'exa' 'ncdu' 'nnn' 'ranger' 'tree' - 'squashfs-tools' - 'uuid-runtime' + "lshw" + "file" "micro" + "grub-efi-amd64-bin" "grub-pc-bin" + "htop" "iotop" "lsof" + "exa" "ncdu" "nnn" "ranger" "tree" + "squashfs-tools" + "uuid-runtime" ) local backports=( # installed - 'cryptsetup-bin' 'rsync' + "cryptsetup-bin" "rsync" # install - 'git' + "git" ) # update catalog apt-get update @@ -87,27 +87,28 @@ function ovh-rescue-install { apt_clean_cache } -function ovh-rescue-upload { +ovh_rescue_upload() { local host="${1}" if [ "${host}" ] ; then - local user='root' + local user="root" # local user_host="${user}@${host}" # remove fingerprints ssh-keygen -R "${host}" # copy ssh id ssh-copy-id \ - -o 'StrictHostKeyChecking=accept-new' \ + -o "StrictHostKeyChecking=accept-new" \ "${user_host}" # upload root rsync --delete --recursive "${MAIN_BASH_ROOT}/" "${user_host}:/etc/bash/" # call setup # TODO variable - ssh "${user_host}" -- "source '/etc/bash/main.sh' ; ovh-rescue-configure '${host}'" + ssh "${user_host}" -- \ + "source \"/etc/bash/main.sh\" ; ovh-rescue-configure \"${host}\"" # create session ssh "${user_host}" -- byobu new-session -d # send keys - ssh "${user_host}" -- byobu send-keys 'ovh-rescue-install' 'C-m' + ssh "${user_host}" -- byobu send-keys "ovh-rescue-install" "C-m" # attach session mosh "${user_host}" -- byobu attach-session else @@ -116,66 +117,66 @@ else fi } -function ovh-rescue-wipe-1-2TB { - local device='/dev/sda' - local unit='mib' +ovh_rescue_wipe_1_2TB() { + local device="/dev/sda" + local unit="mib" # lsblk - echo -n 'WIPE' "${device}" "/?\\ OR CANCEL /!\\" + printf "%s" "WIPE ${device} /?\\ OR CANCEL /!\\" read -r # parted "${device}" --script mktable gpt # - parted "${device}" unit "${unit}" mkpart 'crypt' 65795 1907729 + parted "${device}" unit "${unit}" mkpart "crypt" 65795 1907729 # - parted "${device}" unit "${unit}" mkpart 'boot' 259 65795 + parted "${device}" unit "${unit}" mkpart "boot" 259 65795 # - parted "${device}" unit "${unit}" mkpart 'esp' 2 259 + parted "${device}" unit "${unit}" mkpart "esp" 2 259 parted "${device}" set 3 esp on # parted "${device}" unit "${unit}" mkpart bios 1 2 parted "${device}" set 4 bios_grub on # wipe bios - dd if='/dev/zero' of='/dev/sda4' + dd if="/dev/zero" of="/dev/sda4" # format esp - mkfs.vfat -F 32 -n 'esp' '/dev/sda3' + mkfs.vfat -F 32 -n "esp" "/dev/sda3" # format boot - mkfs.ext4 -F -L 'boot' '/dev/sda2' + mkfs.ext4 -F -L "boot" "/dev/sda2" # read passphrase local passphrase - echo -n 'PassPhrase: ' + printf "PassPhrase: " read -r -s passphrase # encrypt echo "${passphrase}" \ | cryptsetup \ --verbose \ --batch-mode \ - --type 'luks2' \ - --pbkdf 'argon2id' \ - --cipher 'aes-xts-plain64' \ + --type "luks2" \ + --pbkdf "argon2id" \ + --cipher "aes-xts-plain64" \ --iter-time 8192 \ --key-size 512 \ - --hash 'sha512' \ + --hash "sha512" \ --use-random \ luksFormat \ - '/dev/sda1' + "/dev/sda1" # open echo "${passphrase}" \ - | cryptsetup luksOpen '/dev/sda1' 'crypt' + | cryptsetup luksOpen "/dev/sda1" "crypt" # pv - pvcreate '/dev/mapper/crypt' + pvcreate "/dev/mapper/crypt" # vg - vgcreate 'crypt' '/dev/mapper/crypt' + vgcreate "crypt" "/dev/mapper/crypt" # lv swap - lvcreate --name 'swap' --size '68719476736b' 'crypt' + lvcreate --name "swap" --size "68719476736b" "crypt" # lv data - lvcreate --name 'data' --extents '100%FREE' 'crypt' + lvcreate --name "data" --extents "100%FREE" "crypt" # format swap - mkswap --label 'swap' '/dev/mapper/crypt-swap' + mkswap --label "swap" "/dev/mapper/crypt-swap" # format data - mkfs.ext4 -L 'data' '/dev/mapper/crypt-data' + mkfs.ext4 -L "data" "/dev/mapper/crypt-data" # vg off - vgchange --activate n 'crypt' + vgchange --activate "n" "crypt" # close - cryptsetup luksClose 'crypt' + cryptsetup luksClose "crypt" }