Archives d’un auteur
Installation Unbreakable Enterprise Linux 5 Update 3 à partir d’un template Oracle
Les templates Oracle sont utilisable même si on utilise pas Oracle VM Manager.
Commeçons par récupérer un template :
- Téléchargeons le fichier V16223-01 disponible sur l’edivery correspondant à une machine OEL5U3 en para-virtualisé 64 bits. Le zip fait 691 Mo.
- On décompresse le ZIP, puis à nouveau le TGZ qui se trouve dedans (OVM_EL5U3_X86_64_PVM_4GB.tgz)
- On modifie le fichier de configuration vm.cfg au niveau du disque pour que ça marche.
On peut lancer la machine avec un « xm create » mais vous découvrirez vite qu’il n’y a pas assez d’espace disque sur le / pour pouvoir faire quelque chose de cette installation.
On va créer un plus gros disque, le partitionner correctement puis copier le système dessus.
qemu-img create -f raw disk.img 80G
On peut voir le partitionnement du disque System.img d’origine.
sfdisk -l System.img -uM
last_lba(): I don't know how to handle files with mode 81a4
Disque System.img: ne peut obtenir la géométrie
Disque System.img: 790 cylindres, 255 têtes, 63 secteurs/piste
Unités= mégaoctets de 1048576 octets, blocs de 1024 octets, décompte à partir de 0
Périph Amor Début Fin Mo #blocs Id Système
System.img1 * 0+ 31- 32- 32098+ 83 Linux
System.img2 31+ 4157- 4127- 4225095 83 Linux
System.img3 4157+ 6196- 2040- 2088450 82 Linux swap / Solaris
System.img4 0 - 0 0 0 Vide
On créé nos partitions pour le disque slash.img
sfdisk slash.img -uM
last_lba(): I don't know how to handle files with mode 81a4
AVERTISSEMENT: slash.img n'est pas un périphérique fonctionnant par blocs
Disque slash.img: ne peut obtenir la géométrie
Disque slash.img: 10443 cylindres, 255 têtes, 63 secteurs/piste
sfdisk: ERREUR: secteur 0 n'a pas un signature MS-DOS
slash.img: type non reconnu de table de partition
Vieille situation:
Aucune partition repérée
L'entrée utiliser un des formats suivants; les champs absents prennent
la valeur par défaut:
Au prompt slash.img1 :
tapper 0 espace puis 50 Enter, on fait ainsi une partition de 50 Mo pour le /boot (toujours en première partition pour que le pygrub fonctionne)
On voit la ligne apparaitre avant un nouveau prompt :
slash.img1 0+ 54- 55- 56227 83 Linux
Au prompt slash.img2 :
tapper 55 3000 82 Enter, on prend 55 qui est la fin de la première partition, 3000 correspond à la 3 Go et 82 au type de partition Swap
On obtient :
slash.img2 54+ 3059- 3005- 3076447+ 82 Linux swap / Solaris
Pour finir au dernier prompt tapper directement Enter, sfdisk remplira le maximum pour la partition.
slash.img3 3059+ 81917- 78859- 80750722+ 83 Linux
slash.img4 :
slash.img4 0 - 0 0 0 Vide
Nouvelle situation:
Unités= mégaoctets de 1048576 octets, blocs de 1024 octets, décompte à partir de 0
Périph Amor Début Fin Mo #blocs Id Système
slash.img1 0+ 54- 55- 56227 83 Linux
slash.img2 54+ 3059- 3005- 3076447+ 82 Linux swap / Solaris
slash.img3 3059+ 81917- 78859- 80750722+ 83 Linux
slash.img4 0 - 0 0 0 Vide
AVERTISSEMENT: aucune partition primaire marquée amorçable (active)
Cela n'a pas d'importance pour LILO, mais en a pour DOS MBR qui n'amorcera pas ce disque.
Voulez-vous écrire cela sur le disque? [ynq] y
Succès d'écriture de la nouvelle table de partitions
Relecture de la table de partitions ...
BLKRRPART: Ioctl() inappropré pour un périphérique
Si vous créez ou modifiez une partition DOS, /dev/foo7, par exemple, alors
utiliser dd(1) pour mettre à zéro les premiers 512 octets:
dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(Consulter fdisk(8).)
On cherche un périphérique de type loop disponible
losetup -f
/dev/loop3 # par ex
On monte notre image slash comme un disque
losetup /dev/loop3 slash.img
On monte la table des partitions de façon à formater les partitions
kpartx /dev/loop3 # on peut voir les partitions dans /dev/mapper
On format en ext3 la première partition avec comme label /boot
mkfs.ext3 /dev/mapper/loop3p1 -L /boot
On fait la swap
mkswap /dev/mapper/loop3p2 -L SWAP-VM
Initialisation de la version de l'espace de swap 1, taille = 3150274 kB
LABEL=SWAP-VM, pas de uuid
On monte la partition boot dans /mnt/from
lomount -t ext3 -diskimage System.img -partition 1 /mnt/from
On monte notre futur /boot
mount -o loop /dev/mapper/loop3p1 /mnt/to
On copie les fichiers du boot
cp -dpR /mnt/from/. /mnt/to
umount /mnt/from
umount /mnt/to
Même chose pour le /
lomount -t ext3 -diskimage System.img -partition 2 /mnt/from
mount -o loop /dev/mapper/loop3p3 /mnt/to
cp -dpR /mnt/from/. /mnt/to
umount /mnt/from
umount /mnt/to
Les choix des labels sont bien entendu issue du fichier fstab de la partition / de l’image System.img
Il ne reste qu’à modifier le fichier vm.cfg pour avoir le bon disque et on peut démarrer la vm.
Le mot de passe root est ovsroot.
XmlRPC en python et OpenERP
Il est très facile d’interagir avec OpenERP grâce aux requêtes xmlrpc.
Ex de code en python :
#!/usr/bin/python
import xmlrpclib
import sys
username = 'admin' #the user
pwd = 'admin' #the password of the user
dbname = 'demo' #the database
sock_common = xmlrpclib.ServerProxy ('http://localhost:8069/xmlrpc/common')
uid = sock_common.login(dbname, username, pwd)
sock = xmlrpclib.ServerProxy('http://localhost:8069/xmlrpc/object')
search = sock.execute(dbname, uid, pwd, 'project.project', 'search', [])
print "search", search
read = sock.execute(dbname, uid, pwd, 'project.project', 'read', search)
print "read", read
for row in read:
print " >> ", row, "\n\n"
On peut faire en xmlrpc tout ce qu’on peut faire avec le client lourd ou web.
On peut voir avec le mode debug du client lourd observer les requêtes et leurs résultats (cf : http://www.openerp.com/forum/post47115.html?sid=4e83cd21190ce368079c783d6b216726)
Sous linux :
openerp-client -l dump_rpc
Installer un Ubuntu avec OraVM, c’est facile !
Installer sur une machine OracleVM. La version actuelle est la 2.2.0 disponible sur http://edelivery.oracle.com/oraclevm
Une fois installé, on va créer une machine virtuelle à partir d’une image CD. Prenons un fichier nommé ubuntu.iso par ex.
cd /OVS/local qemu-img create -f raw disk.img 10G
Créer un fichier test-ubuntu.cfg contenant le fichier de configuration suivant :
kernel = '/usr/lib/xen/boot/hvmloader'
builder = 'hvm'
memory = '256'
shadow_memory = 8
device_model='/usr/lib/xen/bin/qemu-dm'
# Disks
disk = [ 'file:/OVS/local/disk.img,hda,w',
'file:/OVS/local/ubuntu.iso,hdc:cdrom,r']
# Hostname
name = 'test-ubuntu'
# Networking
dhcp = 'dhcp'
vif = [ '']
vfb = [ 'type=vnc,vnclisten=0.0.0.0,vncdisplay=5901,vncpasswd=' ]
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'destroy'
boot='d'
vcpus=1
Il suffit de démarrer la machine virtuelle avec la commande suivante :
xm create test-ubuntu.cfg
Un fois l’installation terminée, il faudra ré éditer le fichier et modifier la ligne boot en boot=’c’
Puis on refait xm create test-ubuntu.conf pour démarrer à nouveau la VM.
Drivers Paravirtualisés pour Windows
Extrait de la page d’OraVM :
Accelerate the performance of your virtual environment
Windows Paravirtualized drivers are high-performance network and disk drivers that significantly reduce the overhead of the traditional implementation of I/O device emulation. These drivers provide improved network and disk throughput to run fully virtualized Windows guests in an Oracle VM environment.
With Oracle VM, you can deploy both your Linux and Windows applications as is and realize the full benefits from virtualization, without compromising performance.
The following Windows guest operating systems are supported with Oracle VM:
• Windows Server 2008
• Windows Server 2003
• Windows Vista
• Windows XP
Learn more about Oracle VM Windows PV Drivers
Je complète l’annonce par un iso nommé PVM_driver.iso qui possède les drivers paravirtualisés et ainsi le Framework 2 SP2.
En effet, c’est pas évident de télécharger des drivers réseaux quand on a pas de carte réseau !
Si vous vouliez faire votre propre iso, il suffit de mettre les fichiers que vous voulez dans un répertoire et de lancer la commande :
mkisofs -r -l -L -J -o PVM_driver.iso iso/*
Contrôler les Oracle VM en XML-RPC
Il est possible de contrôler les Hyperviseurs Oracle en XML-RPC.
Voici quelques exemples de commande :
/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_get_vm_names
xen_get_vm_names [] =>
success:vm_names=OVM-TEST,OVM_MANAGER
/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_get_vm_path OVM-TEST
xen_get_vm_path ['OVM-TEST'] =>
success:path=/OVS/remote/OVM-TEST
/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_migrate_vm /OVS/remote/OVM-TEST IP_DE_LA_VM
xen_migrate_vm ['/OVS/remote/OVM-TEST', 'IP_DE_LA_VM'] =>
success:target_host=IPdelHYPERVISEUR
/opt/ovs-agent-2.2/utils/do_rpc.py https://oracle:motdepasse@IPdelHYPERVISEUR:8899 xen_get_vnc_port /OVS/remote/OVM-TEST
xen_get_vnc_port ['/OVS/remote/OVM-TEST'] =>
success:vnc_port=5901
Il ne reste plus qu’à faire une interface web ou graphique de gestion plus légère que l’Oracle VM Manager
Installation Lenny PVM sous OraVM (Xen en général)
On peut très facilement installer une debian stable directement avec la commande xm.
La documentation est disponible sur :
http://wiki.debian.org/Xen#DomU.28guest.29
Il suffit de télécharger le fichier de config :
ftp://ftp.debian.org/debian/dists/lenny/main/installer-i386/current/images/netboot/xen/xm-debian.cfg
Modifier un peu le fichier de configuration, avec des éléments comme :
dhcp = 'dhcp'
vif = [ 'mac=00:16:3E:BE:E3:E3' ]
disk = ['file:/OVS2/domains/lenny/disk.img,xvda,w',]
Ensuite on tappe la commande suivante pour lancer l’installation :
xm create -c xm-debian.cfg install=true install-mirror=ftp://ftp.fr.debian.org/debian
Important : Pour que le pygrub fonctionne, il faut que le /boot soit accessible dans la première partition
Sortie de OraVM 2.2.0
Voir pour plus d’informations :
http://blogs.oracle.com/virtualization/2009/10/annoucing_oracle_vm_storage_co.html
Update (10/15/2009): Oracle VM 2.2 ISO images are now available for download from Oracle E-Delivery web site :

Bonjour tout le monde !
Bienvenue sur mon site.
Comme tout le monde peut le voir, j’ai choisi Wordpress pour partager mes connaissances, et expériences sur Internet.
J’ai longtemps réfléchi entre un Wiki, un site Joomla ou encore un blog.
La facilité de Wordpress (et autres blogs) me permettra d’écrire rapidement des astuces, des infos sur des technos que j’essaye.
J’espère que ce site vous donnera des infos que vous n’auriez pas trouvées ailleurs, et le goût aux nouvelles technologies, plus particulièrement celles du Libre.