Le 26/05/2015 15:41, matthieu.m...@ensam.eu a écrit :
Finally I managed to make it working patching two files : Vmsystem.pm and Virtuozzo.pm to 
make the UUID of the guest = UUID + "-" + CT_ID.

Le patch was made for 2.3.16 version.

To be able to make it working, dmidecode must be working on the guest. To do 
so, yo must configure the guest with the two following command (stop the guest 
first) :

   vzctl set $VEID --devnodes mem:r --save
   vzctl set $ VEID  --capability sys_rawio:on --save

If someone found another way to get an identifier of the host from the guest, 
the two previous command would be useless.
Rather than changing guest ID to include host ID so as to make it globally unique (whereas it is currently host-specific), I think just populating the dedicated host ID attribute (UUID) on the guest would be enough, and far less intrusive.

Of course, the algorithm used on GLPI side to establish the relationship beween host and guest should be: - virtual machine ID (HARDWARE/VMID element) on the guest should match virtual machine ID (VIRTUALMACHINE/VMID) on the host - physical machine ID (HARDWARE/UUID element) on the guest should match physical machine ID (VIRTUALMACHINE/UUID) on the host

The first condition in enough only for virtualization technologies that use globaly unique virtual machine identifiers.

David ?
--
Guillaume
diff --git 
a/lib/FusionInventory/Agent/Task/Inventory/Virtualization/Vmsystem.pm 
b/lib/FusionInventory/Agent/Task/Inventory/Virtualization/Vmsystem.pm
index e827905..c86b1a9 100644
--- a/lib/FusionInventory/Agent/Task/Inventory/Virtualization/Vmsystem.pm
+++ b/lib/FusionInventory/Agent/Task/Inventory/Virtualization/Vmsystem.pm
@@ -76,11 +76,14 @@ sub doInventory {
         });
     }
 
+    # guest ID
     my $vmid = $type eq 'Virtuozzo' ?
         _getOpenVZVmID(logger => $logger) : undef;
 
-    my $uuid = $type eq 'Xen' ? _getXenUUID(logger => $logger) :
-               $type eq 'LXC' ? _getLibvirtLXC_UUID(logger => $logger) :
+    # host ID
+    my $uuid = $type eq 'Xen'       ? _getXenUUID(logger => $logger)         :
+               $type eq 'LXC'       ? _getLibvirtLXC_UUID(logger => $logger) :
+               $type eq 'Virtuozzo' ? $inventory->{content}{HARDWARE}{UUID}  :
                undef;
 
     $inventory->setHardware({
_______________________________________________
Fusioninventory-user mailing list
Fusioninventory-user@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/fusioninventory-user

Reply via email to