You are not logged in.
Bonjour,
Les UUID de mes Ordinateur ne correspondent pas à ceux de mes Machines virtuelles et donc pas de liaison.
Est - ce normal? Dois-je modifier les UUID quelque part?
Exemple
UUID Ordinateur: 065383D5-4EA4-4D49-9A01-60D79C56D05B
UUID Machine virtuelle correspondante: F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8
Ma config:
GLPI 0.85.2
FusionInventory-Agent_v2.3.14
Hôte de virtualisation Hyper-V 2012
Merci d'avance, Weastbug.
GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0
Offline
Bonjour Weastbug,
Chaque ordinateur possède son propre UUID qui permet de l'identifier. C'est une sorte de nombre, assez similaire à l'adresse MAC de l'ordinateur, généré à partir des données des composant de celui-ci, il est réputé être unique ou unique avec une très haute probabilité (voir http://fr.wikipedia.org/wiki/Universal_ … dentifier)
Il est donc normal qu'un hôte et des machines hébergées par lui aient des UUID différents.
Last edited by drambeau (2015-02-13 09:27:30)
Offline
Bonjour,
J'entend bien mais que l'hôte dois avoir un UUID différent des machines virtuelle qu'il héberge mais moi ce sont les UUID dans l'onglet machine virtuelle de l'hôte qui ne corresponde pas aux UUID de ces machine virtuelle remontée en temps qu'Ordinateur
Ordinateur - TS3 - ID 2 => UUID 065383D5-4EA4-4D49-9A01-60D79C56D05B
Machine virtuelle - TS3 - ID 27 => UUID F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8
Merci d'avance.
GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0
Offline
Bonjour,
J'ai un peux approfondi le problème
UUID dans la fiche ordinateur est bien le bon:
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. Tous droits réservés.
PS P:\> get-wmiobject Win32_ComputerSystemProduct | Select-Object -ExpandProperty UUID
065383D5-4EA4-4D49-9A01-60D79C56D05B
PS P:\>
L'UUID qui apparait dans l'onglet "Machine virtuelle" de l'hôte de virtualisation est le Global ID ou Logical ID créer par HyperV lors de la création de la machine virtuelle et qui n'a rien avoir avec l'UUID de celle ci.
F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8.xml :
<?xml version="1.0" encoding="UTF-16" standalone="yes"?>
<configuration>
<global_settings>
<owner>
<sid type="string">S-1-5-21-1964239353-2541506782-912031305-1498</sid>
</owner>
<snapshots>
<data_root type="string">V:\Hyper-V</data_root>
<list>
<size type="integer">0</size>
</list>
</snapshots>
</global_settings>
<properties>
<global_id type="string">F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8</global_id>
<name type="string">TS3</name>
<type_id type="string">Virtual Machines Cache</type_id>
</properties>
<savedstate />
<settings>
<global>
<logical_id type="string">F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8</logical_id>
</global>
</settings>
</configuration>
Cf le log de l'agent sur l'hôte de virtualisation:
<VIRTUALMACHINES>
<MEMORY>8192</MEMORY>
<NAME>TS3</NAME>
<STATUS>running</STATUS>
<SUBSYSTEM>MS HyperV</SUBSYSTEM>
<UUID>F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8</UUID>
<VCPU>4</VCPU>
<VMTYPE>HyperV</VMTYPE>
</VIRTUALMACHINES>
Si je remplace l'UUID dans la fiche machine virtuelle par l'UUID de l'ordinateur la liaison ce fait bien mais quand l'agent de l'hôte de virtualisation se connecte supprime la vm et en recrée une avec le Global/Logical ID en temps qu'UUID
A mon sens il ne faudrait pas que l'agent remonte cet UUID qui n'en est pas un ou qu'il le remonte en temps que Global/Logical ID que l'on puisse lier a un UUID.
En attendant j'ai mis un verrou sur l'import des UUID de VM provenant de l'hôte de virtualisation en me basant sur un verrou déjà en place:
INSERT INTO `glpi`.`glpi_plugin_fusioninventory_locks` (
`id` ,
`tablename` ,
`items_id` ,
`tablefields`
)
VALUES (
NULL , 'glpi_computervirtualmachines', '0', '["uuid"]'
);
Mais ca ne fonctionne pas le plugin n'en tiens pas compte, probablement pas reconnu dans le codes...
Last edited by Weastbug (2015-02-20 13:13:46)
GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0
Offline
T'es sur quelle version d'Hyper-V?
Tu sais quelle valeur correspond au bon UUID dans hyper-v?
Offline
Serveur HyperV 2012 R1
Je viens de la trouver ca correspond à <bios_guid>
Dans F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8.xml :
<bios_guid type="string">{065383D5-4EA4-4D49-9A01-60D79C56D05B}</bios_guid>
GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0
Offline
J'ai mis la main sur un script qui peux extraire les UUID.
Option Explicit
Dim WMIService
Dim KvpComponents
Dim VMList
Dim VMSettingList
Dim VM
Dim item
Dim setting
Dim component
'Get instance of 'virtualization' WMI service on the local computer
Set WMIService = GetObject("winmgmts:\\.\root\virtualization")
'Get all the MSVM_ComputerSystem object
Set VMList = WMIService.ExecQuery("SELECT * FROM Msvm_ComputerSystem")
For Each VM In VMList
'if VM.Caption = "Virtual Machine" then
if VM.Caption = "Ordinateur virtuel" then
WScript.Echo "========================================"
WScript.Echo "VM Name: " & VM.ElementName
WScript.Echo "VM GUID: " & VM.Name
WScript.Echo "VM State: " & VM.EnabledState
' Now get the BIOS GUID for this VM
Set VMSettingList = WMIService.ExecQuery("SELECT * FROM Msvm_VirtualSystemSettingData")
For Each setting In VMSettingList
Dim tempVMname
tempVMName = "Microsoft:" + VM.Name
if setting.InstanceID = tempVMName then
WScript.Echo "VM BIOS GUID: " & setting.BIOSGUID
end if
Next
end if
Next
Voici le résultat:
========================================
VM Name: TS3
VM GUID: F26AC3BA-B6A5-4517-8F67-D1A440E6F8A8
VM State: 2
VM BIOS GUID: {065383D5-4EA4-4D49-9A01-60D79C56D05B}
========================================
GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0
Offline
J'ai modifié l'agent 2.3.14 pour qu'il me remonter le bon UUID
Fichier: \FusionInventory-Agent\perl\agent\FusionInventory\Agent\Task\Inventory\Virtualization\HyperV.pm
Ajout en ligne 59, avant "foreach my $object (FusionInventory::Agent::Tools::Win32::getWMIObjects("
my %biosguid;
foreach my $object (FusionInventory::Agent::Tools::Win32::getWMIObjects(
moniker => 'winmgmts://./root/virtualization',
class => 'MSVM_VirtualSystemSettingData',
properties => [ qw/InstanceID BIOSGUID/ ]
)) {
my $id = $object->{InstanceID};
next unless $id =~ /^Microsoft:([^\\]+)/;
$biosguid{$1} = $object->{BIOSGUID};
$biosguid{$1} =~ tr/{}//d;
}
Remplacer
UUID => $object->{Name},
Par
UUID => $biosguid{$object->{Name}},
GLPI 9.5.1 / IIS - Windows 2019 / PHP 7.4.1 / MySQL 5.7.31 / FusionInventory 9.5.0+1.0
Offline