backuppc_client/client/install_backuppc_windows_ba...

99 lines
2.8 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# Automatisation d'installation et configuration de BackupPC pour Windows 10 {{{
# via Bash on Ubuntu
# Institut de Physique de Rennes UMR6251
# Jérémy Gardais Mail 2019
# }}}
# How-to use {{{
# With PowerShell
## This script can be launch with PowerShell:
## bash -c "./install_backuppc_windows_bash_on_linux.sh"
# }}}
# Variable {{{
## Valeur de fin
SUCCESS=0
ERROR=1
backuppc_user="backuppc"
backuppc_homedir="/var/lib/backuppc"
## Couleur {{{
BLACK='\033[49;30m'
BLACKB='\033[49;90m'
RED='\033[0;31m'
REDB='\033[1;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[94;49m'
MAGENTA='\033[0;35m'
CYAN='\033[36;49m'
WHITE='\033[0;37m'
BOLD='\033[1m'
RESET='\033[0m'
## }}}
# }}}
# Fonctions {{{
function addUserForBackuppc() ## {{{
{
local userLogin="${1}" ### eg. 'backuppc'
local userHomedir="${2}" ### eg. '/var/lib/backuppc'
if ! getent passwd "${userLogin}" > /dev/null 2>&1; then
printf '%b\n' "${BOLD}L'utilisateur ${userLogin} n'existe pas, tentative de création.${RESET}\\n"
useradd --system --shell /bin/sh --home-dir "${userHomedir}/" --create-home -- "${userLogin}"
fi
chown -R -- "${userLogin}:" "${userHomedir}"
}
## }}}
function ensureSshdIsInstalled() ## {{{
{
### `command -v sshd` still return old value even after openssh-server was removed
### So we can't be sure of openssh-server state.
if ! hash sshd 2>/dev/null; then
printf '%b\n' "${BOLD}openssh-server non installé, tentative d'installation.${RESET}\\n"
if [ $(command -v aptitude) ]; then aptitude install -y --quiet=5 -- openssh-server > /dev/null
elif [ $(command -v apt) ]; then apt install -y openssh-server > /dev/null
elif [ $(command -v yum) ]; then yum install -y openssh-server
elif [ $(command -v zypper) ]; then zypper install -y openssh-server
else
printf '%b' "${REDB}Merci dinstaller openssh-server sur votre machine, installation annulée.${RESET}\\n"
return "$ERROR"
fi
fi
}
## }}}
# }}}
# Gestion des paquets {{{
## Mettre à jour les dépôts
apt update -- > /dev/null 2>&1
## Installer aptitude
### aptitude permet une meilleure résolution des dépendances/erreurs/... que apt
### apt-get est déprécié au profit de apt ou aptitude
apt install -y -- aptitude > /dev/null 2>&1
## Mettre à jour le système
aptitude full-upgrade -y --quiet=5 > /dev/null
# }}}
# Gestion de l'utilisateur pour BackupPC {{{
addUserForBackuppc "${backuppc_user}" "${backuppc_homedir}"
if [ "$?" != "${SUCCESS}" ]; then
printf '%b' "${REDB}La création de l'utilisateur ${backuppc_user} a échouée, installation annulée.${RESET}\\n"
exit "${ERROR}"
fi
# }}}
# Gestion de SSH {{{
ensureSshdIsInstalled
if [ "$?" != "${SUCCESS}" ]; then
printf '%b' "${REDB}L'installation du serveur ssh a échoué, installation annulée.${RESET}\\n"
exit "${ERROR}"
fi
# }}}
exit "${SUCCESS}"