Table des matières

, , , , , , , , , ,

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 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