Installation proxmox 1.xx automatiquement

Le script suivant permet de pourvoir :

– Installer proxmox de manière automatique

– Définir un master et un node

– Supprimer un node



#!/bin/bash
# KDE 2011 - kilian@desroches.net

# Script d'installation automatique de proxmox





function menu() {

clear

echo "####################################################"
echo "#                                                  #" 
echo "# Script d’installation PROXMOX / v1.xx            #"
echo "# KDE - kilian@desroches.net                       #"
echo "####################################################"


echo "1 – Installation de PROXMOX"
echo "2 – Definir un MASTER"
echo "3 – Definir un NODE et joindre le MASTER"
echo "4 – Supprimer un NODE"
echo "0 – Quitter"
echo ""
echo "Choix : "
read CHOIX


case $CHOIX in

1) install_central && menu;;
2) define_master && menu;;
3) define_node && menu;;
4) del_node && menu;;
0) exit;;

esac
}


function install_central() {

echo "INSTALLATION DE PROXMOX : "

echo "Vérification support VT"

SUPPORTVT=$(egrep '(vmx|svm)' /proc/cpuinfo)

if test -z '$SUPPORTVT'; then

echo "/!\ Le processeur de ne supporte pas KVM"
echo "Voulez vous installer OpenVZ ? [y]"
read OPENVZ
case $OPENVZ in
  [yYoO]*) install_ovz ;;
  [nN]*)  menu;;
esac

else
clear 
echo "Vérification support VT : OK"
install_proxmox

fi


}


function install_ovz(){

echo "INSTALLATION OPENVZ"

echo "Ajout des paramètres sources.list"

mv /etc/apt/sources.list /etc/apt/sources.list.bak

echo  "deb http://ftp.fr.debian.org/debian/ lenny main
deb-src http://ftp.fr.debian.org/debian/ lenny main

deb http://security.debian.org/ lenny/updates main
deb-src http://security.debian.org/ lenny/updates main

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main" >> /etc/apt/sources.list

echo "Installation OpenVZ"

aptitude install linux-image-openvz-686

echo "Installation de Proxmox"

install_proxmox


}



function install_proxmox() {

echo "Insérer la version du kernel proxmox :"
read kernprox


if test -z $kernprox; then

echo "Version invalide"
sleep 3
install_proxmox

else


echo "Renommage du sources.list"
mv /etc/apt/sources.list /etc/apt/sources.list.bak

echo "Mise en place du nouveau sources.list"

echo -e "\ndeb http://ftp.debian.org/debian lenny main
\ndeb http://download.proxmox.com/debian lenny pve
\ndeb http://security.debian.org/ lenny/updates main" >> /etc/apt/sources.list

echo "Recuperation de la cle proxmox"
wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

echo "Update et upgrade"
apt-get update && apt-get -y upgrade

echo "Installation DRBD - LVM2"
apt-get -y install drbd8-utils lvm2

echo "Mise en place du Kernel Proxmox $1"
aptitude safe-upgrade
aptitude install proxmox-ve-$1

echo "Mise en place d'openiscsi"
apt-get -y install open-iscsi iscsi-scst

echo "Relance du service PVEDAEMON et APACHE2"
/etc/init.d/pvedaemon restart && /etc/init.d/apache2 restart

echo "Update du grub"
update-grub

echo "Listing du boot"
echo "ls -l /boot"

echo "Rebooter la machine pour prise en compte du nouveau Kernel"

exit 0
fi

}



function define_master() {
echo "DEFINI LE MASTER : "
echo "Définition du master "
pveca -c

sleep 3


echo "Vérification de la definition du master "
pveca -l


sleep 3

menu

}





function define_node() {
echo "AJOUT NODE : "
echo "Insérer l'IP du serveur master :"
read IPMASTER

if test -z $IPMASTER; then
    echo "IP invalide"
    define_node

    else
    echo "Ajout de IP : $IPMASTER"
    pveca -a -h $IPMASTER
        echo "Vérification de synchro "
        pveca -l

sleep 3
#Retour au menu
menu


fi




}

function del_node() {
echo "SUPPRESSION NODE : "

echo "Affichage des nodes existantes : "
pveca -l


echo "Insérer le CTID du node à supprimer :"
read CTID

if test -z $CTID; then
    echo "CTID invalide"
    del_node

    else
    echo "Suppression : $CTID"
    pveca -d $CTID
        echo "Vérification des nodes "
        pveca -l

sleep 3
#Retour au menu
menu


fi


}


# Vérication du root
if [ "$(id -u)" != "0" ]; then
   echo "Le script doit etre execute en root"
   exit 1
    else
    menu
fi