You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
246 lines
6.7 KiB
246 lines
6.7 KiB
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
DESC="Préparation du système pour compatibilité DIRECT, COW et TGZ."
|
|
|
|
set +u
|
|
[ -z "$GUEST_NAME" ] && GUEST_NAME=buster
|
|
set -u
|
|
|
|
|
|
updateUpgrade() {
|
|
vdn-ssh root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
|
|
apt-get update; apt-get -y upgrade
|
|
"
|
|
}
|
|
|
|
# pb rpcbind :
|
|
# - longueur (le service ne ne semble pas démarrer à l'INSTALLATION
|
|
# mais le service rpcbind démarre au démarrage
|
|
|
|
installNfs() {
|
|
vdn-ssh root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
export DEBIAN_FRONTEND=noninteractive; apt-get install -y nfs-common nfs-kernel-server
|
|
"
|
|
}
|
|
|
|
installDocker() {
|
|
|
|
set +u
|
|
[ -z "$http_proxy" ] && http_proxy="" || :
|
|
[ -z "$https_proxy" ] && https_proxy="" || :
|
|
set -u
|
|
|
|
# désactive le service docker, Voir les scripts de post-configuration
|
|
# n'ajoute aucun utilisateur au groupe docker par défaut. Voir les scripts de post-configuration
|
|
|
|
vdn-ssh -t root@$GUEST_NAME "
|
|
export http_proxy=$http_proxy
|
|
export https_proxy=$https_proxy
|
|
apt-get update
|
|
apt-get -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common
|
|
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
|
|
apt-key fingerprint 0EBFCD88
|
|
add-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/debian \$(lsb_release -cs) stable\"
|
|
apt-get update
|
|
apt-get -y install docker-ce docker-ce-cli containerd.io docker-compose
|
|
curl -L https://raw.githubusercontent.com/docker/compose/1.24.1/contrib/completion/bash/docker-compose -o /etc/bash_completion.d/docker-compose
|
|
|
|
systemctl mask containerd docker
|
|
"
|
|
}
|
|
|
|
|
|
installQuaggaFrr() {
|
|
case "$GUEST_SYS" in
|
|
debian/buster) debs=quagga;;
|
|
*) debs=bird2;;
|
|
esac
|
|
|
|
vdn-ssh root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
export DEBIAN_FRONTEND=noninteractive; apt-get remove --purge -y frr
|
|
"
|
|
|
|
vdn-ssh root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
export DEBIAN_FRONTEND=noninteractive; apt-get install -y $debs
|
|
"
|
|
}
|
|
|
|
installModulesReseaux() {
|
|
|
|
# paquets problématiques retirés :
|
|
# rpcbind : le paramétrage lors de l'installation du paquet bloque 90s
|
|
# nfs-common nfs-kernel-server
|
|
# quagga
|
|
# user-mode-linux
|
|
### pour bookworm
|
|
# curlftpfs vim-gtk glib-2.0-dev
|
|
|
|
DEBS="less ssh mingetty rsync net-tools haveged rng-tools dnsutils zerofree"
|
|
DEBS="$DEBS vim slirp"
|
|
DEBS="$DEBS sshfs psmisc bsdutils strace busybox-static"
|
|
DEBS="$DEBS traceroute iptables tcpdump wireshark-gtk nmap"
|
|
DEBS="$DEBS manpages"
|
|
DEBS="$DEBS ftp curl dillo"
|
|
DEBS="$DEBS libapache2-mod-php apache2-doc"
|
|
DEBS="$DEBS xbase-clients"
|
|
DEBS="$DEBS lynx psmisc file strace lsof telnet links links2"
|
|
DEBS="$DEBS iputils-ping"
|
|
DEBS="$DEBS rsync dialog"
|
|
DEBS="$DEBS firefox-esr"
|
|
DEBS="$DEBS nautilus"
|
|
DEBS="$DEBS openvpn"
|
|
DEBS="$DEBS proftpd isc-dhcp-server"
|
|
|
|
DEBS="$DEBS busybox-static debootstrap"
|
|
|
|
DEBS="$DEBS gedit"
|
|
|
|
DEBS="$DEBS gpm vde2"
|
|
DEBS="$DEBS spice-vdagent"
|
|
DEBS="$DEBS gpm vde2"
|
|
DEBS="$DEBS gcc make autoconf uidmap pkg-config \
|
|
glib-2.0 libglib2.0-dev dpkg-dev \
|
|
libcap-dev libcap2 libseccomp2 libseccomp-dev"
|
|
|
|
# TP Pascal :
|
|
DEBS="$DEBS john hashcat sqlmap php default-mysql-server"
|
|
|
|
echo "apt-get..."
|
|
vdn-ssh -t root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get install -y $DEBS
|
|
"
|
|
# cas de lighttpd
|
|
vdn-ssh -t root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
export DEBIAN_FRONTEND=noninteractive;
|
|
apt-get install -y lighttpd
|
|
systemctl disable lighttpd
|
|
"
|
|
|
|
|
|
# disable services
|
|
|
|
# remove : nfs-kernel-server nfs-blkmap nfs-server
|
|
|
|
local l="ModemManager NetworkManager NetworkManager-dispatcher NetworkManager-wait-online anacron apparmor autovt@ bgpd dbus-fi.w1.wpa_supplicant1 dbus-org.freedesktop.Avahi dbus-org.freedesktop.ModemManager1 dbus-org.freedesktop.nm-dispatcher dbus-org.freedesktop.timesync1 getty@ hddtemp isisd lighttpd lm-sensors network-manager nmbd openbsd-inetd openvpn ospf6d ospfd pimd portmap pppd-dns ripd ripngd rpcbind rsync smbd speech-dispatcher syslog systemd-timesyncd udisks2 wpa_supplicant zebra uml-utilities apache2 proftpd isc-dhcp-server mariadb haveged nfs-server bird"
|
|
|
|
vdn-ssh -t root@$GUEST_NAME "for i in $l; do echo \"Disable \$i\"; systemctl disable \$i; done"
|
|
|
|
}
|
|
|
|
|
|
|
|
installLocales() {
|
|
|
|
vdn-ssh root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
set -a; . /etc/vdn/config; set +a
|
|
|
|
cat << END > /etc/default/locale
|
|
# File generated by update-locale
|
|
LANG="$DEFAULT_LANG"
|
|
END
|
|
|
|
sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
|
|
sed -i -e 's/# $DEFAULT_LANG UTF-8/$DEFAULT_LANG UTF-8/' /etc/locale.gen
|
|
|
|
dpkg-reconfigure --frontend=noninteractive locales
|
|
update-locale LANG=$DEFAULT_LANG
|
|
"
|
|
}
|
|
|
|
installKeyboard() {
|
|
vdn-ssh root@$GUEST_NAME "
|
|
[ -n "$http_proxy" ] && export http_proxy="$http_proxy"
|
|
[ -n "$https_proxy" ] && export https_proxy="$https_proxy"
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
set -a; . /etc/vdn/config; set +a
|
|
|
|
cat << END > /etc/default/keyboard
|
|
# KEYBOARD CONFIGURATION FILE
|
|
|
|
# Consult the keyboard(5) manual page.
|
|
|
|
XKBMODEL="$XKBMODEL"
|
|
XKBLAYOUT="$XKBLAYOUT"
|
|
XKBVARIANT="$XKBVARIANT"
|
|
XKBOPTIONS="$XKBOPTIONS"
|
|
|
|
BACKSPACE="$BACKSPACE"
|
|
END
|
|
"
|
|
|
|
}
|
|
|
|
installTimezone() {
|
|
ln -sf /usr/share/zoneinfo/$TIMEZONE /etc/localtime
|
|
}
|
|
|
|
|
|
installAll() {
|
|
updateUpgrade
|
|
installLocales
|
|
installTimezone
|
|
installKeyboard
|
|
#installQuaggaFrr
|
|
installModulesReseaux
|
|
installDocker
|
|
installNfs
|
|
}
|
|
|
|
run() {
|
|
|
|
. $VDN_PATH/bin/functions-scripts.sh
|
|
. $VDN_PATH/bin/functions-build.sh
|
|
|
|
setErrorHandler
|
|
echoStart
|
|
|
|
set -a
|
|
. $NETWORK_DIR/$GUEST_NAME.conf
|
|
set +a
|
|
|
|
GUEST_DIR=$VDN_PATH/distribs/guests/direct/$GUEST_SYS
|
|
|
|
echo "HDA=$VDN_PATH/files/$HDA"
|
|
|
|
[ ! -e $VDN_PATH/files/$HDA ] && \
|
|
debootstrap
|
|
|
|
vdn-start $GUEST_NAME
|
|
sleep 1
|
|
waitSsh $GUEST_NAME
|
|
|
|
set +u
|
|
[ -z "$http_proxy" ] && http_proxy="" || :
|
|
[ -z "$https_proxy" ] && https_proxy="" || :
|
|
set -u
|
|
|
|
installAll
|
|
|
|
cleanHistory $GUEST_NAME
|
|
|
|
vdn-halt $GUEST_NAME
|
|
|
|
unsetErrorHandler
|
|
echoDone
|
|
}
|
|
|