#/bin/bash for PARAM in "$@"; do case "$PARAM" in --version=*) DIST_VERSION="${PARAM/*=}" ;; --distrib=*) DISTRIB="${PARAM/*=}" ;; --static) STATIC=true ;; --help) echo "syntaxe: $0 [--help] [--static] [--version=7|8] [--distrib=CentOS|AlmaLinux]" esac done if [ -z "${DIST_VERSION}" ]; then DIST_VERSION=8 fi if [ -z "${DISTRIB}" ]; then DISTRIB="CentOS" fi if ! which wget; then yum install -y wget fi IF="$(ip route show | grep ^default | sed 's/.* dev \([^ ]*\) *.*/\1/' | sort -u)" IP="$(ip addr show $IF | grep inet\ | awk '{print $2}' | cut -d/ -f1)" PREFIX="$(ip addr show $IF | grep inet\ | awk '{print $2}' | cut -d/ -f2)" MASK="$(ipcalc -m $IP/$PREFIX | cut -d= -f2)" GW="$(ip route show | grep ^default | sed 's/.* via \([^ ]*\) *.*/\1/' | sort -u)" MAC="$(ip addr show $IF | grep ether\ | awk '{print $2}' | cut -d/ -f2 | tr [A-Z] [a-z])" DNS="$(grep nameserver /etc/resolv.conf | grep -v 127.0.0.1 | awk '{printf $2","}' | sed 's/,$//')" ARCH=$(uname -m | sed 's|i.86|i386|') if [ "${DIST_VERSION}" == "8" ]; then #MIRROIR=http://lune.saacy.reslinger.net/repos/CentOS8/$ARCH/os if [ "$DISTRIB" == "CentOS" ]; then MIRROIR=http://mirror.centos.org/centos/8/BaseOS/$ARCH/os elif [ "$DISTRIB" == "AlmaLinux" ]; then MIRROIR=https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os fi elif [ "${DIST_VERSION}" == "7" ]; then #MIRROIR=http://centos.mirrors.ovh.net/ftp.centos.org/7/os/$ARCH MIRROIR=http://mirror.centos.org/centos/7/os/$ARCH #MIRROIR=http://lune.saacy.reslinger.net/repos/CentOS7/$ARCH/os else echo "Version ${DIST_VERSION} non reconnue" >&2 exit 1 fi #DESKTOP=desktop INST_OPTIONS="inst.lang=fr_FR inst.keymap=fr-latin9 panic=1 ks.sendsn ks.sendmac inst.sshd=1 net.ifnames=0 biosdevname=0 $DESKTOP" INST_OPTIONS="${INST_OPTIONS} inst.vnc inst.vncpassword=SDFGHJKL" if [ -z "$DNS" ]; then if [ $(whois $IP | grep -ci dedibox) -gt 0 ]; then # Dedibox DNS=62.210.16.6,62.210.16.7 else # OVH DNS=213.186.33.99 #DNS=46.246.46.46,194.132.32.23 fi fi if [ $(mount | grep -c /boot\ ) -eq 1 ]; then PARTBOOT="" else PARTBOOT="/boot" fi cd /boot wget "$MIRROIR"/isolinux/{vmlinuz,initrd.img} if [ $(ip link show | grep ^[0-9] | grep -v lo: | wc -l) -eq 1 ]; then INST_OPTIONS="ks.device=link ${INST_OPTIONS}" else INST_OPTIONS="ks.device=$MAC ${INST_OPTIONS}" fi if [ ! -z "$STATIC" ]; then INST_OPTIONS="ip=$IP::$GW:$MASK:$(hostname -s):$IF:off:${DNS/,*} ${INST_OPTIONS}" fi if [ -f /boot/grub2/grub.cfg -o $(find /boot/efi/EFI -name grub.cfg | egrep -c '(almalinux|centos|redhat)') -gt 0 ]; then if [ $(sed 's/ /\n/g' /proc/cmdline | grep -c console) -gt 1 ]; then # echo "On ajoute les console pour avoir une config également en serial" CONSOLE="$(for i in `sed 's/ /\n/g' /proc/cmdline | grep console`; do echo -n "$i "; done | sed 's/ $//')" fi #BOOT_DISK="$(df -hP /boot/ | awk '{print $1}' | tail -n1)" BOOT_DISK="$(mount | grep -e '\s'"`df -h /boot | tail -n1 | awk '{print $6}'`"'\s' | cut -f1 -d\ )" #BOOT_UUID="$(tune2fs -l ${BOOT_DISK} | grep UUID | awk '{print $3}')" BOOT_UUID="$(blkid ${BOOT_DISK} | sed 's/.*\sUUID="\([^ ]*\)".*/\1/')" if [ $(echo "${BOOT_DISK}" | grep -c /dev/md) -eq 1 ]; then # Pas forcement /dev/md2 !!! UUID_BOOT_DISK="mduuid/$(mdadm --detail ${BOOT_DISK} | grep UUID | awk '{print $3}' | sed 's/://g')" else #echo "UUID_BOOT_DISK non defini" >&2 #exit 1 UUID_BOOT_DISK="${BOOT_UUID}" fi cat >> /etc/grub.d/40_custom <> /boot/grub/grub.conf <&2 exit 1 fi # avec tigervnc: # vncviewer CompressLevel 9 FullColor 176.31.103.156:1