Modifications entre les versions 91 et 104 (s'étendant sur 13 versions)
Version 91 à la date du 2007-12-14 17:21:08
Taille: 5624
Commentaire:
Version 104 à la date du 2008-02-27 19:55:26
Taille: 8011
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 30: Ligne 30:
     sudo chmod 666 /dev/vboxdrv
     sudo adduser $LOGNAME vboxusers
     sudo groupadd vboxusers
Ligne 34: Ligne 37:
* Essai de [https://help.ubuntu.com/community/ATAOverEthernet ATAoverEThernet] ... impossible en multiaccess de disque-winxp.vdi * Essai de [[https://help.ubuntu.com/community/ATAOverEthernet|ATAoverEThernet]] ... impossible en multiaccess de disque-winxp.vdi
Ligne 39: Ligne 42:
Ligne 41: Ligne 43:
Ligne 42: Ligne 45:

VDI=/usr/local
#
# Script qui permet aux uilisateurs d'installer une image windows sous virtualbox
# VDI contient l'image du disque winxp mis sur le serveur nfs
# TMP contient l'image de diffèrence. Il est préfèrable de monter une partition sur TMP

VBOXMANAGE=$(which vboxmanage)
ZENITY=$(which zenity)

#Prend comme argument le nom de la nouvelle machine
VBOXVMUUID=$1

#VDI=/srv/images/aigeme
VDI=/mnt/AIGEME
MAPAGE=/nfs$HOME/Documents
FLASH=/nfs$HOME/.FlashDisk
#TMP=/srv/local/vbox
Ligne 45: Ligne 62:
MAPAGE=/nfs$HOME/Documents/
FLASH=/nfs$HOME/.FlashDisk/

if [ -e $HOME/.VirtualBox ] ; then
    rm -rf $HOME/.VirtualBox
#Nom du disk
DISKFILE=XP-AIGEME.vdi


# Tips pour les usb, dans VBOX ose
 if [ ! -d $FLASH ] ; then
 mkdir $FLASH
 ln -s /media/disk/ $FLASH/
 fi

# Test de Zenity
 if [ ! -x ${ZENITY} ]; then
        echo "Erreur: l'outil Zenity n'est pas installé."
        exit 1
 fi

if [ ! $# = 1 ]; then
        ${ZENITY} --error --title "Argument nécessaire" --text "Ce script doit faire appel à un argument: l'UUID/nom de la machine virtuel doit être mis en argument."
        exit 2
Ligne 52: Ligne 83:
# Nettoyage des disques de diffèrences au cas ou le trap ne fonctionne pas
if [ -n "$TMP" -a -e $TMP/* ] ; then
    rm -rf $TMP/{*
# Nettoyer le répertoire home/.Virtualbox/defaults
  if [ -f $HOME/.VirtualBox//.nfs* ]; then
 sleep 3
 ${ZENITY} --error --title "Erreur suppression nfs*** " --text " Ressource occupée, redémarrer l'application"
 exit 2
  fi

 # Re-nettoyage
 rm -rf $HOME/.VirtualBox/


 # Nettoyage des disques de diffèrences
 if [ ! -d $TMP ] ; then
  ${ZENITY} --error --title " Erreur d'accès disque temp." --text "La partition temporaire est innaccessible "
  exit 1
  elif [ -n "$TMP" -a -e $TMP/* ] ; then
  rm -rf $TMP/{*
  fi


# repertoires des images sources des machines sur le serveur nfs
 ${VBOXMANAGE} setproperty vdifolder $VDI/

# conf des machines restent dans le homedir
 ${VBOXMANAGE} setproperty machinefolder defaults


# faire reconnaitre notre image modele
 if [ ! -e $VDI/$DISKFILE ] ; then
 ${ZENITY} --error --title " Erreur d'accès disque " --text "L'image disque ${DISK} ne peut être trouver "

 fi
# rendre le disque immutable
${VBOXMANAGE} registerimage disk $DISKFILE -type immutable

  
# creer la machine du nom de "WinXP"
${VBOXMANAGE} createvm -name ${VBOXVMUUID} -register

# lui attacher l'image disque avec les options audio et nat
${VBOXMANAGE} modifyvm ${VBOXVMUUID} -hda $DISKFILE -nic1 nat -snapshotfolder $TMP -audio alsa


if ${VBOXMANAGE} showvminfo ${VBOXVMUUID} | grep ^Primary\ master > /dev/null; then
        DISKFILE=$(${VBOXMANAGE} showvminfo ${VBOXVMUUID} | grep ^Primary\ master | sed -e "s/Primary\ master:\ *//" -e 's/\ *(UUID.*$//')
        if [ ! -r ${DISKFILE} ]; then
                ${ZENITY} --error --title "Disque primaire non trouvé" --text "L'image disque pour le disque primaire, ${DISKFILE}, ne peut être trouvé."
                 exit 1
        fi
Ligne 56: Ligne 133:

# Tips pour les usb, dans VBOX ose
mkdir $FLASH
ln -s /media/disk/ $FLASH


# repertoires des images sources des machines sur le serveur nfs
vboxmanage setproperty vdifolder $VDI

# conf des machines restent dans le homedir
vboxmanage setproperty machinefolder defaults

# faire reconnaitre notre image modele
vboxmanage registerimage disk disque-winxp.vdi -type immutable

# creer la machine du nom de "WinXP"
vboxmanage createvm -name WinXP -register

# lui attacher l'image disque
vboxmanage modifyvm WinXP -hda disque-winxp.vdi -nic1 nat -snapshotfolder $TMP -audio alsa
  
Ligne 78: Ligne 136:
vboxmanage setextradata global "GUI/SuppressMessages" "remindAboutAutoCapture,remindAboutInputCapture,remindAboutMouseIntegrationOn" ${VBOXMANAGE} setextradata global "GUI/SuppressMessages" "remindAboutAutoCapture,remindAboutInputCapture,remindAboutMouseIntegrationOn"
${VBOXMANAGE} setextradata global "GUI/Customizations noMenuBar,noStatusBar"
Ligne 81: Ligne 140:
vboxmanage sharedfolder add WinXP -name Documents -hostpath $MAPAGE
vboxmanage sharedfolder add WinXP -name FlashDisk -hostpath $FLASH

# Interface avec mode seamless
# vboxmanage startvm WinXP -gui

# Interface simple
vboxsdl -vm WinXP

# Capture du signal à l'arret avec suppression des images de diff
trap "rm -rf $TMP/{*; exit" 0 1 2 3 9 15
vboxmanage sharedfolder add ${VBOXVMUUID} -name Documents -hostpath $MAPAGE/
vboxmanage sharedfolder add ${VBOXVMUUID} -name FlashDisk -hostpath $FLASH/

 
# lancement de vbox

VBOXOUT=$(${VBOXMANAGE} startvm ${VBOXVMUUID})
VBOXCODE=$?

   if [ ! ${VBOXCODE} = 0 ]; then
           echo -e ${VBOXOUT}
           VBOXERROR=$(echo ${VBOXOUT} | grep "\[\!\]\ Text" | sed "s/.*\[\!\]\ Text\ *=\ *//")
           VBOXERROR=$(echo ${VBOXERROR} | sed "s/\ \[\!\].*//")
           ${ZENITY} --error --title "Erreur lors du lancement de la machine virtuelle" --text " Une erreur s'est produite lors du lancement de la machine virtuelle: ${VBOXERROR}
           tapez \"${VBOXMANAGE} startvm ${VBOXVMUUID}\" pour plus de détails."
        exit 4
   fi
 
Ligne 94: Ligne 160:
  . ''Le `trap` sert à intercepter les signaux envoyés au script lui même. C'est pour cette raison qu'on le place plutôt en début de script. Sinon, s'il s'agit uniquement de nettoyer les fichiers qui traînent après la sortie de la machine virtuelle, inutile de faire un `trap` : il suffit de faire le `rm` directement. -- ProgFou''
Ligne 99: Ligne 165:
 . * '' Lorsqu'on modifie, supprime, ou on déplace des fichiers dans "Mes documents" sous WinXP, il faut rafraichir le fenêtre :( ''  . * '' Lorsqu'on modifie, supprime, ou on déplace des fichiers dans "Mes documents" sous WinXP, il faut rafraichir la fenêtre :( ''
Ligne 108: Ligne 174:

/!\ Avant de copier l'image modele faire un petit
 {{{
 vboxmanage modifyvm WinXP -hda none
 vboxmanage unregisterimage disk disque-winxp.vdi
}}}
Ligne 136: Ligne 208:
       sinon créer une nouvelle image vdi avec les logs de [http://wiki.auf.org/wikiteki/FOAD/AIGEME AIGEME]        sinon créer une nouvelle image vdi avec les logs de [[http://wiki.auf.org/wikiteki/FOAD/AIGEME|AIGEME]]
Ligne 148: Ligne 220:
=== Misc ===

Templates de distros en VDI http://veedee-eyes.com:82/veedeeeyes/book

TAF pour pouvoir virtualiser correctement

Idée principale

* Mettre l'image disque-winxp sur un serveur

* Mettre le snapshot sur le disque dur local pour le traitement des diffèrences

* Ceux qui restent sur les dossiers personnels (serveur nfs) de l'utilisateur

  • * Les fichiers de configuration statiques en taille
  • * Les fichiers de logs (126 ko)

I. Configuration de la machine type/modele

* Configurer virtualbox en mode graphique :), l'essentiel est d'avoir une "bonne" config de Windows XP

* Installer le VBOXGuestAdditions_Tools_1.5.0_OSE.iso qui est un correctif, essentiel pour le partage de dossier, graphisme etc...que du bien

* Configuration de Windows avec un disque en mode normal. Droits: (rwx)

  • * Mappage de "mes documents" avec /$HOME/Documents, et mettre le chemin unc: \\VBOXSVR\Documents

  • * Création d'un lecteur logique pour simuler le lecteur usb dans le poste de travail du guest: net use z: \\VBOXSVR\FlashDisk

  • * Logiciels dépendant de la formation

II. Configuration sur les machines foad

* Créer une partition de 5Go pour mettre le snapshot, monter sur /mnt/VBOX/TMP

  • Donner les droits aux dossiers /mnt/VBOX/TMP à tous les vboxusers.
    •      sudo chmod 666 /dev/vboxdrv
           sudo adduser $LOGNAME vboxusers
           sudo groupadd vboxusers
           sudo chown -R .vboxusers /mnt/VBOX/TMP 
           sudo chmod 770 /mnt/VBOX/TMP 

* Essai de ATAoverEThernet ... impossible en multiaccess de disque-winxp.vdi

* Mettre le disque-winxp.vdi sur le serveur NFS avec les droits 440, appartenant au groupe vbox. (/usr/local)

* Faire un script qui automatise le management et le démarrage de vbox,

# 
# Script qui permet aux uilisateurs d'installer une image windows sous virtualbox
# VDI contient l'image du disque winxp mis sur le serveur nfs
# TMP contient l'image de diffèrence. Il est préfèrable de monter une partition sur TMP

VBOXMANAGE=$(which vboxmanage)
ZENITY=$(which zenity)

#Prend comme argument le nom de la nouvelle machine 
VBOXVMUUID=$1

#VDI=/srv/images/aigeme
VDI=/mnt/AIGEME
MAPAGE=/nfs$HOME/Documents
FLASH=/nfs$HOME/.FlashDisk
#TMP=/srv/local/vbox
TMP=/mnt/VBOX/TMP
#Nom du disk
DISKFILE=XP-AIGEME.vdi


# Tips pour les usb, dans VBOX ose
 if [ ! -d $FLASH ] ; then
        mkdir $FLASH
        ln -s /media/disk/ $FLASH/
 fi

# Test de Zenity
 if [ ! -x ${ZENITY} ]; then
        echo "Erreur: l'outil Zenity n'est pas installé."
        exit 1
 fi

if [ ! $# = 1 ]; then
        ${ZENITY} --error --title "Argument nécessaire" --text "Ce script doit faire appel à un argument: l'UUID/nom de la machine virtuel doit être mis en argument."
        exit 2
fi

# Nettoyer le répertoire home/.Virtualbox/defaults
  if [ -f $HOME/.VirtualBox//.nfs* ]; then
        sleep 3
        ${ZENITY} --error --title "Erreur suppression nfs*** " --text " Ressource occupée, redémarrer l'application"
        exit 2
  fi

 # Re-nettoyage
 rm -rf $HOME/.VirtualBox/


 # Nettoyage des disques de diffèrences
 if [ ! -d $TMP ] ; then
                ${ZENITY} --error --title " Erreur d'accès disque temp." --text "La partition temporaire est innaccessible "
                exit 1
         elif [ -n "$TMP" -a -e $TMP/* ] ; then                 
                rm -rf $TMP/{*
  fi 


# repertoires des images sources des machines sur le serveur nfs
 ${VBOXMANAGE} setproperty vdifolder $VDI/

# conf des machines restent dans le homedir
 ${VBOXMANAGE} setproperty machinefolder defaults


# faire reconnaitre notre image modele
 if [ ! -e $VDI/$DISKFILE ] ; then
        ${ZENITY} --error --title " Erreur d'accès disque " --text "L'image disque ${DISK} ne peut être trouver "

 fi 
# rendre le disque immutable
${VBOXMANAGE} registerimage disk $DISKFILE -type immutable

                
# creer la machine du nom de "WinXP"
${VBOXMANAGE} createvm -name ${VBOXVMUUID} -register

# lui attacher l'image disque avec les options audio et nat
${VBOXMANAGE} modifyvm ${VBOXVMUUID} -hda $DISKFILE -nic1 nat -snapshotfolder $TMP -audio alsa


if ${VBOXMANAGE} showvminfo ${VBOXVMUUID} | grep ^Primary\ master > /dev/null; then
        DISKFILE=$(${VBOXMANAGE} showvminfo ${VBOXVMUUID} | grep ^Primary\ master | sed -e "s/Primary\ master:\ *//" -e 's/\ *(UUID.*$//')
        if [ ! -r ${DISKFILE} ]; then
                ${ZENITY} --error --title "Disque primaire non trouvé" --text "L'image disque pour le disque primaire, ${DISKFILE}, ne peut être trouvé."
                        exit 1
        fi
fi
                

# supprimer les extradatas
${VBOXMANAGE} setextradata global "GUI/SuppressMessages" "remindAboutAutoCapture,remindAboutInputCapture,remindAboutMouseIntegrationOn"
${VBOXMANAGE} setextradata global "GUI/Customizations noMenuBar,noStatusBar"

# Partage des dossiers entre XP et Ubuntu
vboxmanage sharedfolder add ${VBOXVMUUID} -name Documents -hostpath $MAPAGE/
vboxmanage sharedfolder add ${VBOXVMUUID} -name FlashDisk -hostpath $FLASH/

 
# lancement de vbox

VBOXOUT=$(${VBOXMANAGE} startvm ${VBOXVMUUID})
VBOXCODE=$?

   if [ ! ${VBOXCODE} = 0 ]; then
           echo -e ${VBOXOUT}
           VBOXERROR=$(echo ${VBOXOUT} | grep "\[\!\]\ Text" | sed "s/.*\[\!\]\ Text\ *=\ *//")
           VBOXERROR=$(echo ${VBOXERROR} | sed "s/\ \[\!\].*//")
           ${ZENITY} --error --title "Erreur lors du lancement de la machine virtuelle" --text " Une erreur s'est produite lors du lancement de la machine virtuelle: ${VBOXERROR} 
           tapez \"${VBOXMANAGE} startvm ${VBOXVMUUID}\" pour plus de détails."
        exit 4
   fi
        


Remarques

  • * Lorsqu'on modifie, supprime, ou on déplace des fichiers dans "Mes documents" sous WinXP, il faut rafraichir la fenêtre :(

  • * Pour modifier le type de l'image pour la maintenance, sachant qu'on a disque-winxp.vdi, avec un chmod rwx
     vboxmanage modifyvm WinXP -hda none
     vboxmanage unregisterimage disk disque-winxp.vdi
     vboxmanage registerimage disk disque-winxp.vdi -type normal
     vboxmanage modifyvm WinXP -hda disque-winxp.vdi
     vboxmanage startvm WinXP -gui 
  • et c'est reparti en n'oubliant pas de remettre le mod en read-only

/!\ Avant de copier l'image modele faire un petit

  •  vboxmanage modifyvm WinXP -hda none
     vboxmanage unregisterimage disk disque-winxp.vdi
  • * Pour les fichiers de configurations, on a 3 types de uuid:
    • 1. Celui qui spécifie le nom de la machine virtuelle: WinXp

    • 2. L'uuid qui spécifie le "disque dur", qu'il soit immutable ou non
    • 3. Et enfin un dernier qui est spécifié quand le type est immutable
        <MachineRegistry>
          <MachineEntry src="Machines/WinXP/WinXP.xml" uuid="{f4270d7d-2c5f-4776-46af-e43f34e655dd}"/>
        </MachineRegistry>
         .....
            <HardDisk type="immutable" uuid="{85330e70-3e98-488c-0586-f01e5685fec3}">
              <VirtualDiskImage filePath="/mnt/e1.1/disque-winxp.vdi"/>
              <DiffHardDisk uuid="{db7c4e20-7a9c-4d72-ecbb-96a07249f8c5}">
                <VirtualDiskImage filePath="/mnt/VBOX/{db7c4e20-7a9c-4d72-ecbb-96a07249f8c5}.vdi"/>
              </DiffHardDisk>
            </HardDisk> 
          </HardDisks> 

A tester

  • Test VMDK
    1. Lancer VMDK depuis Gestionnaire de disk VBox
      • Sinon Convertir une image VMDK de vmware en VDI
    2. Tester le mode immutable VMDK sur VirtualBox

      • Si test ok mettre sur le serveur NFS
        • sinon créer une nouvelle image vdi avec les logs de AIGEME

  • Test X-access
    • Tester l'acces de l'image depuis plusieurs machines du CDR
      • Si test ok passer a test foad
        • sinon verifier les permissions, type etc..
  • Test foad
    • Implementer le test sur quelques utilisateurs dans la salle foad

Misc

Templates de distros en VDI http://veedee-eyes.com:82/veedeeeyes/book

NdimbyAndriantsoavina/NotesPerso (dernière édition le 2011-09-08 11:12:41 par NdimbyAndriantsoavina)