J'utilise un nombre restreint de configurations types. Par exemple, pour toutes les installations de type serveur (JBoss, Glassfish, Hudson CI,...), j'ai configuré une Debian avec Java, MySQL et quelques autres logiciels. Chaque fois que j'en ai besoin, je fais une copie de l'environnement étalon et je travaille sur cette copie.
Le principal défaut de cette procédure est que la duplication de disque virtuel est facile à réaliser, mais pas la duplication de la configuration. J'ai donc décidé de faire un script shell pour automatiser la création de nouvelles machines virtuelles à partir du disque étalon.
Pour créer la machine virtuelle :
#!/bin/sh vbox_home=`pwd`/`dirname $0` vm_name=$1 vdi_file=$vbox_home/VDI/$(echo $vm_name | tr "[:upper:]" "[:lower:]").vdi # Création du disque dur echo "Creating virtual hard drive disk file ($vdi_file)" cp $vbox_home/VDI/deb5-server.vdi $vdi_file VBoxManage internalcommands setvdiuuid $vdi_file echo "Opening virtual hard drive disk ($vdi_file)" VBoxManage openmedium disk $vdi_file # Création de la machine virtuelle echo "Creating virtual machine $vm_name" VBoxManage createvm --name $vm_name --basefolder $vbox_home/Machines/ --ostype Debian --register VBoxManage modifyvm $vm_name --memory 512 VBoxManage modifyvm $vm_name --nic2 hostonly --hostonlyadapter2 vboxnet0 echo "Attaching hdd to the virtual machine" VBoxManage storagectl $vm_name --name "Contrôleur IDE" --add ide VBoxManage storageattach $vm_name --storagectl "Contrôleur IDE" --port 0 --device 0 --type hdd --medium $vdi_file echo "Adding shared folders" VBoxManage sharedfolder add $vm_name --name "stockage" --hostpath ~/stockage --readonly VBoxManage sharedfolder add $vm_name --name "tmp" --hostpath ~/stockage/tmp
Pour supprimer la machine virtuelle :
#!/bin/sh vbox_home=`pwd`/`dirname $0` vm_name=$1 vdi_file=$vbox_home/VDI/$(echo $vm_name | tr "[:upper:]" "[:lower:]").vdi echo "Removing virtual machine ($vm_name)" VBoxManage storageattach $vm_name --storagectl "Contrôleur IDE" --port 0 --device 0 --type hdd --medium none VBoxManage unregistervm $vm_name --delete echo "Removing virtual hard drive disk ($vdi_file)" VBoxManage closemedium disk $vdi_file --delete
0 commentaires:
Enregistrer un commentaire