{{tag>Bionic Focal Jammy windows programmation powershell pwsh vmware powercli vrops metrologie }}
====== VMware vRealize Operations ======
VMware **vRealize Operations**, dit **vROps**, est un logiciel de métrologie de serveurs.
Nous allons voir ici comment y accéder en ligne de commande sous Linux.
===== Prérequis =====
Avoir [[powershell|Powershell]] d'installé sous votre Ubuntu.
Un serveur vROps **Serveur-vROps.intra** opérationnel et les droits utilisateur suffisant pour accéder à ce serveur.
===== Installation =====
exécuter Powershell en root :
sudo pwsh
Installer le module client VMware :
install-module -name VMware-PowerCLI
===== Configurations initiales =====
Set-PowerCLIConfiguration -Scope User -ParticipateInCEIP $false
Pour voir la version de son client :
Get-PowerCLIVersion
Ensuite il faut ignorer les erreurs d'identification de certificat https :
Set-PowerCLIConfiguration -InvalidCertificateAction Ignore
===== Connexion au serveur =====
 
Vous pouvez vous connecter au serveur avec
$vrops = Connect-OMServer -Server Serveur-vROps.intra -User "votrenomutilisateur" -Password "motdepasse" -AuthSource "Domaine"
===== Exemple d'utilisation =====
Pour exécuter un rapport
Recherche des éléments du rapport :
Import-Module VMware.VimAutomation.vROps
Get-OMResource -Name "vSphere World" | Select-Object Id
Id
--
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
 
$vrops.ExtensionData.GetReportDefinitions($null, $null, "Oversized Virtual Machines").ReportDefinition
Name                 : Optimization Report - Oversized Virtual Machines
Description          : Oversized VMs Report.
Subject              : {Virtual Machine}
Traversalspecs       : {Custom Datacenters, Application Dependency, vSphere Hosts and Clusters, vSphere Storage…}
LastRunTime          : 01/01/0001 00:00:00
LastRunTimeSpecified : False
Owner                : admin
Links                :
Any                  :
Id                   : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
CreationTime         : 01/01/0001 00:00:00
Active               : True
ActiveSpecified      : True
AnyAttr              :
Définition du rapport à utiliser :
$TraversalSpec = New-Object VMware.VimAutomation.VROps.Views.TraversalSpec
$TraversalSpec.Name = "vSphere Hosts and Clusters"
$TraversalSpec.RootAdapterKindKey = "VMWARE"
$TraversalSpec.RootResourceKindKey = "vSphere World"
$Report = New-Object VMware.VimAutomation.VROps.Views.Report
$Report.ResourceId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$Report.ReportDefinitionId = "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy"
$Report.TraversalSpec = $TraversalSpec
 
Exécution du rapport :
$vrops.ExtensionData.CreateReport($Report)
Name               :
Description        : Oversized VMs Report.
ResourceId         : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ReportDefinitionId : bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
TraversalSpec      :
Subject            : VirtualMachine VirtualMachine
Owner              : cccccccc-cccc-cccc-cccc-cccccccccccc
CompletionTime     : null
Status             : QUEUED
Links              : {linkToSelf, linkToResource, linkToReportDefinition}
Any                :
Id                 : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
AnyAttr            :
 
Récupération du rapport :
$vrops.ExtensionData.GetReport("zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz")
 
Name               :
Description        : Oversized VMs Report.
ResourceId         : aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
ReportDefinitionId : bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb
TraversalSpec      :
Subject            : VirtualMachine VirtualMachine
Owner              : cccccccc-cccc-cccc-cccc-cccccccccccc
CompletionTime     : Tue Feb 28 11:14:27 UTC 2023
Status             : COMPLETED
Links              : {linkToSelf, linkToResource, linkToReportDefinition}
Any                :
Id                 : zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz
AnyAttr            :
 
Récupérer le rapport :
$DataReport = $vrops.ExtensionData.GetReport("zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz")
$DataReport.Links
Description Href                                                                  Rel     Name
----------- ----                                                                  ---     ----
            /suite-api/api/reports/pppppppp-pppp-pppp-pppp-pppppppppppp           SELF    linkToSelf
            /suite-api/api/resources/rrrrrrrr-rrrr-rrrr-rrrr-rrrrrrrrrrrr         RELATED linkToResource
            /suite-api/api/reportdefinitions/ssssssss-ssss-ssss-ssss-ssssssssssss RELATED linkToReportDefinition
 
Par lien WEB :
https://Serveur-vROps.intra/ui/vcops/services/download/report/getCSV?reportId=pppppppp-pppp-pppp-pppp-pppppppppppp
 
Pour récupérer le rapport dans le script :
git clone https://github.com/ryan-jan/vROps-Reports.git
Import-Module ./vROps-Reports/vROps-Reports/vROps-Reports.psd1
Receive-OMReport -Report $DataReport -CSV -Path "./Rapport.csv"
Receive-OMReport -Report $DataReport -PDF -Path "./Rapport.pdf"
Pour le récupérer sans le module externe :
$MemoryStream = New-Object System.IO.MemoryStream
$DataReport.DownloadReport($MemoryStream, "CSV")
$ReadStream = New-Object System.IO.StreamReader($MemoryStream)
$MemoryStream.Seek(0, "Begin")
while ($ReadStream.Peek() -ne -1) {
     $ReadStream.ReadLine() >> Rapport1.csv
}
sed -i '/^$/d' ./Rapport.csv
===== Voir aussi =====
  *[[:Nagios]]
  *[[:Shinken]]
  *[[:Sysstat]] [[https://ubunlog.com/fr/systat-herramienta-monitorizar-ubuntu|Blog tutoriel]]
  *[[:Munin]]
  *[[:Powershell]]