diff --git a/dicos/99_one-master.xml b/dicos/99_one-master.xml index 0663f2e..4a50266 100644 --- a/dicos/99_one-master.xml +++ b/dicos/99_one-master.xml @@ -68,6 +68,15 @@ non + + non + + + 40 + + + 2.5.2 + @@ -205,7 +214,7 @@ hapy_vm_hook_state hapy_vm_hook_lcm_state - + ['CREATE','REMOVE'] @@ -219,6 +228,11 @@ hapy_user_hook_command hapy_user_hook_arguments + + non + hapy_init_master_disk_size + hapy_init_master_iso_version + @@ -236,5 +250,7 @@ Déclancheur du Hook (cf: http://docs.opennebula.org/4.8/integration/infrastructure_integration/hooks.html) Script lancé par le Hook (cf: http://docs.opennebula.org/4.8/integration/infrastructure_integration/hooks.html) Arguments passés au script lancé par le Hook d'utilisateur (cf: http://docs.opennebula.org/4.8/integration/infrastructure_integration/hooks.html) + Initialiser Hâpy avec quelques fonctions de bases : ISO EOLE, Disque dur vierge et template d'installation d'EoleBase. ATTENTION, provoque le téléchargement de l'ISO EOLE + Version de l'ISO EOLE à télécharger lors de l'initialisation diff --git a/postservice/99-init-hapy-master b/postservice/99-init-hapy-master new file mode 100755 index 0000000..26044b6 --- /dev/null +++ b/postservice/99-init-hapy-master @@ -0,0 +1,108 @@ +#!/bin/bash + +[ $(CreoleGet hapy_init_master) == non ] && exit 0 + +DISKSIZE=$(CreoleGet hapy_init_master_disk_size) +DISKNAME="DSK-${DISKSIZE}-Go" +DISKDESC="Disque vide de ${DISKSIZE} Go" + +VERSIONISO=$(CreoleGet hapy_init_master_iso_version) +MAJORVERSION=${VERSIONISO:0:3} +ISONAME="ISO-Eole-${VERSIONISO}-amd64" +ISODESC="Image ISO EOLE Stable ${VERSIONISO} 64 bits" + +TMPLNAME="InstallEole-${VERSIONISO}-amd64" +TMPLDESC="Modèle de VM permettant d'installer un module EOLE ${VERSIONISO} 64 bits (non persistente)" + +echo "########### suppr ${DISKNAME} ###############" +oneimage delete ${DISKNAME} +echo +echo "########### suppr ${ISONAME} ###################" +oneimage delete ${ISONAME} +echo +echo "########### suppr ${TMPLNAME} ###################" +onetemplate delete ${TMPLNAME} +echo + +#***************************************************** +# DISQUE VIDE +#***************************************************** +if ! oneimage show "${DISKNAME}" &>/dev/null +then + echo "***** Création de ${DISKNAME} *****" + oneimage create -d $(CreoleGet one_ds_image_name) --name "${DISKNAME}" --type DATABLOCK --description "${DISKDESC}" --size $((${DISKSIZE}*1024)) --prefix vd --driver qcow2 --fstype qcow2 + oneimage chtype "${DISKNAME}" OS +else + echo "***** ${DISKNAME} existe déjà *****" +fi +echo + +#***************************************************** +# Image ISO EOLE Latest Stable +#***************************************************** +if ! oneimage show "${ISONAME}" &>/dev/null +then + echo "***** Téléchargement de ${ISONAME} *****" + wget --output-document "/tmp/eole-${VERSIONISO}-alternate-amd64.iso" "http://eole.ac-dijon.fr/pub/iso/EOLE-${MAJORVERSION}/${VERSIONISO}/eole-${VERSIONISO}-alternate-amd64.iso" + echo "***** Création de ${ISONAME} *****" + if [ $? -ne 0 ]; then + echo "Erreur lors du téléchargement, Abandon" + exit 1 + fi + + FILE=$(mktemp) + cat > ${FILE} </dev/null && break + oneimage show ${ISONAME} | grep STATE | grep lock &>/dev/null || break + echo -n "Attente : " + oneimage show ${ISONAME} | grep STATE + done + rm -f "/tmp/eole-${VERSIONISO}-alternate-amd64.iso" +else + echo "***** ${ISONAME} existe déjà *****" +fi +echo + + +#***************************************************** +# Template EOLEBASE +#***************************************************** +if ! onetemplate show "${TMPLNAME}" &>/dev/null +then + echo "***** Création de ${TMPLNAME} *****" + FILE=$(mktemp) + cat > ${FILE} <