Philippe Caseiro
78a27b4fdd
Ajouter la possibilité de créer une grappe haute disponibilité entre plusieurs Hâpy (https://docs.opennebula.org/5.6/advanced_components/ha/index.html) Pré-requis : Les datastores doivent être partagés entre tous les Hâpy via NFS ou tout autre système de fichiers accécibles de manière concurrente entre les serveurs (Glusterfs, Ceph, DRBD). Pour faire ce développement nous nous sommes basés sur eole-glusterfs qui permet de créer une grappe glusterfs (https://dev-eole.ac-dijon.fr/projects/eole-glusterfs)
93 lines
2.1 KiB
Bash
Executable File
93 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
. /usr/lib/eole/diagnose.sh
|
|
|
|
|
|
eKO() {
|
|
EchoRouge "Erreur"
|
|
}
|
|
|
|
eOK() {
|
|
EchoVert "Ok"
|
|
}
|
|
|
|
one()
|
|
{
|
|
su oneadmin -s /bin/sh -c "$@"
|
|
}
|
|
|
|
TestServiceStatus() {
|
|
printf ". %${len_pf}s => " "$1"
|
|
service $2 status >/dev/null 2>&1
|
|
if [ $? -eq 0 ] ; then
|
|
eOK
|
|
else
|
|
eKO
|
|
fi
|
|
}
|
|
|
|
eOneStatus() {
|
|
[ "$1" = "STOPPED" -o "$1" = "UNKNOWN" ] && EchoRouge "$1" && return
|
|
[ "$1" = "off" ] && EchoRouge "$1" && return
|
|
[ "$1" = "ACTIVE" -o "$1" = "on" ] && EchoVert "$1" && return
|
|
EchoOrange "$1"
|
|
}
|
|
|
|
|
|
EchoGras "*** Virtualisation"
|
|
|
|
if [ "$(CreoleGet 'activer_openvswitch')" != "oui" ]; then
|
|
printf ". %${len_pf}s => " "Virutalisation"
|
|
EchoOrange "Non actif"
|
|
fi
|
|
|
|
TestServiceStatus "libvirt" libvirt-bin
|
|
TestServiceStatus "OpenNebula" opennebula
|
|
TestService "XMLRPC" "localhost:2633"
|
|
TestService "Sunstone" $(CreoleGet "ip_sunstone"):$(CreoleGet "port_sunstone")
|
|
TestService "Proxy VNC" $(CreoleGet "ip_sunstone"):$(CreoleGet "vnc_proxy_port_sunstone")
|
|
if [ "$(CreoleGet 'activer_oneflow' 'non')" == 'oui' ]; then
|
|
TestService "OneFlow" $(CreoleGet "ip_oneflow"):$(CreoleGet "port_oneflow")
|
|
fi
|
|
TestServiceStatus "OpenVswitch" openvswitch-switch
|
|
echo ""
|
|
|
|
if [[ $(CreoleGet activer_onesinglenode 2>&1) == 'oui' ]]
|
|
then
|
|
EchoGras "*** Noeuds du cluster Hâpy"
|
|
|
|
NODES=$(one 'onehost list -l ID,NAME,STAT' | awk '!/ID.*NAME.*STAT/ {print $1 ":" $2 ":" $3}')
|
|
for elm in ${NODES}
|
|
do
|
|
node=(${elm//:/ })
|
|
id=${node[0]}
|
|
name=${node[1]}
|
|
state=${node[2]}
|
|
|
|
printf ". %${len_pf}s => " "$name"
|
|
eOneStatus "${state}"
|
|
done
|
|
echo
|
|
fi
|
|
|
|
EchoGras "*** Machines Virtuelles"
|
|
|
|
# Les machines virtuelles se terminant par -TEST ne sont pas vérifiées
|
|
VMs=$( one 'onevm list -l ID,NAME,STAT' | tail -n +2 | grep -ve '\-TEST ' | awk '{print $1}' )
|
|
if [[ -z ${VMs} ]]
|
|
then
|
|
printf ". %${len_pf}s " "Aucune machine virtuelle instanciée"
|
|
echo ""
|
|
else
|
|
for VM in $VMs ; do
|
|
NAME=$( one "onevm show $VM" | grep '^NAME' | cut -d: -f2 )
|
|
STAT=$(one "onevm show $VM" | grep '^STATE' | cut -d: -f2 | tr -d ' ' )
|
|
printf ". %${len_pf}s => " "$NAME"
|
|
eOneStatus "$STAT"
|
|
done
|
|
fi
|
|
|
|
echo ""
|
|
|
|
|