eole-one-master/diagnose/04-virtualisation
Philippe Caseiro 78a27b4fdd Ajout du support OpenNebula HA dans Hâpy
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)
2019-03-01 16:42:14 +01:00

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 ""