venerdì 14 dicembre 2018

NSX - [LoadBalancer] Invalid expire time setting. Valid expire time should be 1-86400


Problema
In fase di creazione di un nuovo Application Profile nel Load Balancer di NSX, ho ottenuto il seguente messaggio di errore:

"[LoadBalancer] Invalid expire time setting. Valid expire time should be 1-86400"


Il campo "Expires in (Seconds)" sembra disattivato e non mi permette di inserire un valore compreso tra 1 e 86400 secondi (pur cliccandoci sopra ripetutamente e su qualsiasi punto della form).


La problematica non si presenta se si sceglie come opzione Mode:, "Insert" o "App Session".


Soluzione
Per risolvere la problematica si sono utilizzate le chiamate REST API. Spiegherò in un successivo post come utilizzare le REST API per interagire con NSX e/o altre piattaforme/sistemi.
La guida di riferimento NSX API Guide descrive come installare, configurare, monitorare e mantenere VMware NSX® Data Center per sistemi vSphere® utilizzando le richieste REST API.

Procediamo nel seguente modo:
  1. Creiamo l'Application Profile con ad esempio l'opzione "Mode: Insert" ed "Expires in (Seconds): 3600"; o qualsiasi altro valore che ci permetta si salvare il profilo.

  2. Procediamo nota ora dell'Edge ID sul quale stiamo lavorando (nel mio caso edge-16) e dell'Application Profile ID (nel mio caso applicationProfile-14); ci servirà dopo per la chiamata REST API.

  3. Costruiamo la richiesta XML (come indicato dal manuale a pag.404), assicurandoci di impostare i seguenti tag XML:
    <cookieMode>Prefix</cookieMode>
    <expire>3600</expire>


  4. Apriamo il nostro client REST API preferito (nel mio caso utilizzo postnam) e compiliamo tutti i campi necessari per sottoporre la richiesta:

    - In Authorization inseriamo Username e Password

    - Compiliamo la richiesta URL

    https://{NSXManager}/api/4.0/edges/{edgeId}/loadbalancer/config/applicationprofiles/{appProfileID}

    nel mio caso

    https://{NSX-Manager}/api/4.0/edges/edge-16/loadbalancer/config/applicationprofiles/applicationProfile-14 (1)

    - Selezioniamo come metodo PUT

    - Incolliamo nel campo Body (raw - XML (application/xml)) la richiesta precedentemente creata (2)


  5. Clicchiamo il pulsante SEND

  6. La risposta che otteniamo è "Status: 204 No Content" (3)


    questo sta ad indicare che la nostra richiesta di modifica del profilo è stata sottoposta con successo.

  7. Non ci resta che verificare il profilo sia stato modificato correttamente (come desiderato) dall'interfaccia GUI. Editiamo il profilo .....


    Anche se il campo Expires in (Seconds) risulta essere ancora non abilitato alla modifica, sembra comunque essere stato modificato come desiderato.

Problema risolto!!!

domenica 4 novembre 2018

VMware Advanced Deploy vSphere 6.5 Exam 2018. Certification Unlocked


Il tanto atteso risultato è finalmente arrivato... dopo aver aspettato per circa 6 settimane nell'inbox è arrivata la seguente email .....


Ed il risultato è .......PASSED


giovedì 18 ottobre 2018

PowerCLI 11.0.0 Updates - Automatic script to remove unnecessary modules


Disclaimer: Some of the procedures described below is not officially supported by VMware. Use it at your own risk.

L'11 Ottobre scorso è stata rilasciata la nuova versione PowerCLI 11.0.0 con un impressionante numero di novità ed aggiornamenti:

  • Added a new Security module
  • Added new cmdlets for Host Profiles
  • Added a new cmdlet to interact with NSX-T in VMware Cloud on AWS
  • Support for vSphere 6.7 Update 1
  • Support for NSX-T 2.3
  • Support for Horizon View 7.6
  • Support for vCloud Director 9.5
  • Multiplatform support for the Cloud module
  • Updated the Get-ErrorReport cmdlet
  • Removed the PCloud module
  • Removed the HA module
maggiori informazioni possono essere trovare sul blog ufficiale VMware a questo link.

L'update della PowerCLI di per se è semplice, come indicato anche in un mio precedente post è sufficiente lanciare il comando 'Update-Module -Name VMware.PowerCLI' ...


... e come per le precedenti versioni, se si utilizza Update-Module per aggiornare i moduli, le versioni esistenti non vengono rimosse (vedi Update a PowerCLI Module). Come vediamo dall'immagine sotto ci sono righe che contengono gli stessi moduli ma con diverse versioni.

Esattamente come indicato nel precedente post procedo con la rimozione dei moduli non più necessari; con la differenza che questa volta, ho realizzato un piccolo script in PowerShell per aiutarmi con l'identificazione dei moduli duplicati e la rimozione di quelli con versione inferiore.

Lo script di seguito è stato testato su Mac ....

#!/usr/local/bin/pwsh 
########################################################################################
#  File  : PurgeDuplicatePowerCliModules.ps1
#  Author: Lorenzo Moglie
#  Date  : 17.10.2018
#  Version     : 1.0.0.0
#  Disclaimer  : The script is provided as is, use at your own risk.
#  Description : This script list the VMware Modules Available into a TXT file. Read 
#                the txt file, line by line and comparing the duplicate modules 
#                uninstalling the older version
#######################################################################################

Get-Module -Name VMware.* -ListAvailable | select Name,Version > ModuleList.txt

$NameStr = ""
$VersionApp = ""
Get-Content ./ModuleList.txt | where {$_ -ne ""} | ForEach-Object { 
 $line=[regex]::Replace($_, "\s+", " ")
 $NameModule,$VersionModule = $line.split(' ')
 if($NameStr -match $NameModule) {  
  echo "Removing module: $NameModule --> Version One:$VersionModule --- Version Two:$VersionApp "
     if ([System.Version]::Parse($VersionModule) -lt [System.Version]::Parse($VersionApp)){
      echo "Removing version -> $VersionModule"
      Invoke-Expression  "Uninstall-Module -Name $NameModule -RequiredVersion $VersionModule -force"
     } else {
      echo "Removing version -> $VersionApp"
      Invoke-Expression  "Uninstall-Module -Name $NameModule -RequiredVersion $VersionApp -force"
     }
     echo ""
 }
 $NameStr = $NameModule
 if (($VersionModule -match "Version") -Or ($VersionModule -match "-------")) {
   # Do Nothing 
 } else {
   $VersionApp = $VersionModule
 }
}
rm ./ModuleList.txt
Prima di lanciare il file "PurgeDuplicatePowerCliModules.ps1" modifichiamo i permessi in questo modo ...
LIF:Desktop lorenzo$ chmod +x PurgeDuplicatePowerCliModule.ps1 

... lanciamo lo script .....
LIF:Desktop lorenzo$ ./PurgeDuplicatePowerCliModule.ps1 

In fine. Verifichiamo che i moduli duplicati siano stati correttamente rimossi ....

LIF:Desktop lorenzo$ pwsh 
PowerShell v6.0.2
Copyright (c) Microsoft Corporation. All rights reserved.

https://aka.ms/pscore6-docs
Type 'help' to get help.

PS /Users/lorenzo/Desktop> Get-Module -ListAvailable VMware.* | Select Version,Name   

That's it.


L'output dello script è stato migliorato in questo post "PowerCLI 11.4.0 Updates - Automatic script to remove unnecessary modules improved"

sabato 13 ottobre 2018

Remapping Keys in macOS

Problema
Utilizzo quotidianamente, sia per scopi lavorativi che personali un MAC Book Pro. Quando sono in ufficio mi capita spesso di connettere schermo e tastiera USB (APPLE Magic Keyboard + Tastierino numerico) esterni come quella mostrata qui.


Con altrettanta frequenza mi capita di utilizzare il tastierino numerico per digitare indirizzi IP. Ma forse per pigrizia, ho sempre digitato dal tastierino i numeri e mai il "." (punto). Questo perché nel tastierino numerico come possibile vedere sotto è presente la "," (virgola).



Soluzione
Ho pensato quindi a come poter ri-mappare solo quello specifico tasto e non l'intero layout della tastiera.
La soluzione l'ho trovato nella technote "Remapping Keys in macOS 10.12 Sierra" di apple TN2450.
Per far funzionare il tutto bisogna procedere come indicato sotto. Da tenere presente che la modifica è temporanea e, ad ogni riavvio le impostazioni vengono perse (in futuro vediamo come rendere permanente questa modifica).
La soluzione è stata testata su di un ambiente macOS Mojave Versione 10.14.
  1. Apriamo un "Terminal"

  2. Procediamo con il verificare la lista dei device riconosciuti dal sistema ..digitando hidutil list


  3. Come possiamo vedere, la tastiera esterna è identificata dalla seguente stringa "Apple Keyboard"

  4. Prendiamo nota del ProductID (nel mio caso "0x221") e del VendorID (nel mio caso "0x5ac")

  5. Prendiamo nota dal link della Technote Apple dello "Usage ID (hex)" che corrisponde alla "," del tastierino alla riga "Keypad . and Delete" che corrisponde a "0x63".

  6. Prendiamo nota anche del carattere che vogliamo impostare al posto del tasto identificato alla riga "Keyboard . and ">"" con il UsageID che corrisponde a "0x37".

  7. Non ci resta che lanciare la seguente stringa da terminale ... e verificarne il funzionamento.

    LIF:~ Lorenzo$ hidutil property --matching '{"ProductID":0x221,"VendorID":0x5ac}' --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000063,"HIDKeyboardModifierMappingDst":0x700000037}]}'


  8. Funziona!!!!

  9. Se vogliamo ritornare alle impostazioni originali lanciare il comando:

    LIF:~ Lorenzo$ hidutil property  --set '{"UserKeyMapping":[]}'

  10. Per verificare le impostazioni lanciare il comando:
    LIF:~ Lorenzo$ hidutil property  --get "UserKeyMapping"


Prossimamente scrivorò, come fare in modo di attivare questa mappatura al ricnoscimento della tastiera, rendendolo permanente.

giovedì 4 ottobre 2018

New Advanced Deploy vSphere 6.5 Exam - 3V0-21.18


La settimana scorsa mi sono trovato a sostenere il nuovo esame "Advanced Deploy vSphere 6.5 Exam 2018" e volevo condividere alcune problematiche riscontrate, dovute spero, alla giovane età dell'esame.

VCAP-DCV 2018 Deploy Exam Details:
Exam Duration: 205 minutes
Number of Questions: 17 Questions
Passing Score: 300
Cost: $450
Format: Lab-based, Proctored

VCAP-DCV 2018 Deploy Exam Guide:
Exam Preparation Guide:
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/certification/vmware-vcap-dcv-2018-exam-prep-guide.pdf
Reference: https://www.vmware.com/education-services/certification/vcap-dcv-deploy-2018-exam.html

Il primo problema l'ho riscontrato nello schedulare l'esame. L'esame risulta essere disponibile sul sito della Pearson Vue, una volta scelto il centro dove sostenerlo non mi viene presentato nessun "calendar" per poterlo schedulare (giorno ed ora). In prima battuta ho pensato che fosse un problema del centro, magari non c'erano disponibilità in quella data. Ho quindi, provato a selezionare un altro centro ma con lo stesso risultato. Ho provato a selezionare vari centri a Milano, Roma, Bologna ..... sembra che questo esame non si possa schedulare.
L'unico modo che ho trovato per poterlo schedulare è stato, chiamando il supporto Pearson Vue.

Premesso: sapevo che l'esito di quest'esame non fosse immediato. Mi aspettavo dopo qualche ora di ricevere una email con l'esito dell'esame, ma nulla di fatto. Il giorno successivo non avendo ricevuto nessun tipo di notifica decido di scrivere al servizio Education di VMware chiedendo informazioni. Ehhh, dopo essere passato per varie persone del supporto, esattamente dopo una settimana dall'esame vengo a scoprire che il risultato di questo nuovo esame sarà disponibile tra le 4 e le 6 settimane....



non mi resta che incrociare le dita ed attendere.

Di seguito alcuni link utili per la preparazione all'esame:
VCAP6-DCV Deploy Exam Simulator – FREE (virtualg.uk)
VCAP6-DCV Deploy Practice (sostechblog.com)
VCAP6-DCV Deployment Exam Preparation (shirazerosagon.blogspot.com)
VCAP6-DCV Deployment Study Guide (vjenner.com)
VMware Hands-on Lab (VMware)

Ultimo consiglio utilizzare quotidianamente ESXi :-)

lunedì 24 settembre 2018

Corrispondenze tra versioni VxRail e VMware Build Numbers

Mi trovo alle prese con l'aggiornamento di una infrastruttura VxRAIL, dove il vCenter Server e la PSC Server sono esterni all'infrastruttura Dell EMC e quindi con la necessità di avere in fase di upgrade tutte le varie componenti come VxRAIL Manager, vCenter server/vSAN, nodi ESXi (build numbers), ESRS, Log Insight, ecc. in matrice.

Tutti gli aggiornamenti relativi all'infrastruttura VxRail vengono effettuati dal VxRail Manager e non direttamente dal VC o sui nodi ESXi.

Ho quindi la necessità di avere una tabella comparativa che mi permetta di correlare le versioni di VMware con quanto presente all'interno dei "composite package" rilasciati da Dell EMC.

Ecco trovata una KB52075 ufficiale di VMware con una tabella delle versioni corrispondenti di VxRail e VMware. Tuttavia la KB trovata sembra non essere stata aggiornata di recente. Le informazioni che sto ricercando non sono presenti.

Cercando le stesse informazioni all'interno del sito di supporto Dell EMC, trovo quanto mi serve nel documento "VxRail support Matrix".

venerdì 21 settembre 2018

VMware vRealize Operations Manager - Data Retriever is not inizialized yet. Please wait...

Problema
Un cliente lamenta l'impossibilità di accedere tramite web alla GUI di VMware vRealize Operations Manager. 
Non si ha la possibilità di inserire le proprie credenziali in quanto la pagina è in stallo con il messaggio "Data Retriever is not inizialized yet. Please wait...



Soluzione

Prima di effettuare quando indicato di seguito spegnere la VM ed effettuare una Snapshot in modo da avere un punto di ripristino più o meno corretto.


  1. Loggarsi all'interno della Virtual appliance tramite SSH o direttamente dalla console VMware (come è stato per il mio caso)... ed iniziare ad analizzare l'occupazione disco con il comando "df -h".


    Come possibile vedere dall'immagine sopra, non c'è più spazio dedicato ai log.
  2. Accediamo alla cartella "/storage/log" ed analizziamo lo spazio nelle varie cartelle ...


  3. Analizziamo inizialmente la cartella "/storage/log/var" alla ricerca di file da rimuovere. Come possiamo vedere dall'immagine sotto:
    - "messages" occupa 2.1GB
    - "auth.log" occupa 2.6GB

  4. Stoppiamo il servizio syslog ("/etc/init.d/syslog stop") e procediamo ad azzerare i due file nel con il seguente comando:
    - echo > messages
    - echo > auth.log

  5. Spostiamoci ora, ad analizzare la cartella "/storage/log/vcops/log".
    Da una prima analisi abbiamo notato che la cartella è popolata da moltissimi file (nello specifico 8858) di cui molti sono di dimensioni 0.



  6. Dopo una veloce ricerca su google.... abbiamo trovato la KB corretta che può aiutarci a ripulire correttamente la cartella "/storage/log/vcops/log" al seguente link "Safely cleaning up log files in vRealize Operations 6.x (2145578)"
  7. Seguita alla lettera la KB VMware. Eseguiamo un reboot dell'intera appliance ..... et voilà


    siamo nuovamente in grado di poter inserire le credenziali per il login.

venerdì 14 settembre 2018

vRealize Operations Manager Appliance - lost local root password

Problema
Ho la necessità di accedere in console a "VMware vRealize Operation Manager" appliance per risolvere/verificare una problematica segnalata da un cliente.
Il problema è che il cliente non ricorda più la password di root dell'appliance.

Soluzione
Niente panico!! :-) procediamo con il reset come indicato nella KB2001476.

  1.  Per Prima cosa procediamo con lo spegnere la VM


  2. Con la console aperta, ri-avviamo la virtual machine.
  3. Quando appare il GRUB loader menu, selezionare l'entry corrispondente al normale avvio di sistema nel mio caso "SUSE Linux Enterprise Server 11 SP3 for VMware - 3.0.101-0.47.52". Aggiungere alla riga di boot la stringa "init=/bin/sh" come da immagine sotto ed avviare normalmente


  4. Quando ci viene presentato il prompt "sh-3.2#" digitare "passwd root" digitare e confermare la nuova password inserita. Riavviare l'appliance con reboot.


  5. Riavviato il sistema è possibile loggarsi all'interno con le credenziali precedentemente impostate.

martedì 21 agosto 2018

PowerCLI 10.2.0 Updates - Manual removal of unnecessary modules

Disclaimer: Some of the procedures described below is not officially supported by VMware. Use it at you own risk.

Il 20 Agosto 2018, è stata rilasciata la nuova PowerCLI 10.2.0 con i seguenti aggiornamenti: 
  • Support for NSX-T 2.2
  • Deprecation of the PCloud module, so look for this module to be removed in the future
  • Update to Get-VIEvent to resolve the issue when receiving: Error in deserializing body of reply message for operation 'RetrieveProperties'
maggiori informazioni possono essere trovare sul blog ufficiale VMware a questo link.

L'update della PowerCLI, di per se è semplice. E' sufficiente lanciare il comando...

PS /Users/lorenzo>  Update-Module -Name VMware.PowerCLI
... di fatto per i puristi è da far notare che i "vecchi" moduli non vengono rimossi e/o rimpiazzati dalle nuove versioni; ma restano sul sistema.

Come indicato, anche nella "VMware PowerCLI 10.2.0 User's Guide" nel paragrafo "Update a PowerCLI Module", è consigliato rimuovere i moduli  per poi re- installarli ..... 



Non conoscendo quali sono i moduli che sono stati aggiornati con il rilascio della versione 10.2.0, sarebbe opportuno rimuovere completamente la PowerCLI per poi re-installarla. 

Di seguito utilizzeremo un metodo diverso.... procederemo in primis con l'update della PowerCLI e poi con la rimozione dei vecchi moduli.

Per prima cosa prendiamo visione dei moduli attualmente installati ...


PS /Users/lorenzo> Get-Module -Name  VMware.* -ListAvailable


Procediamo con l'update ...

PS /Users/lorenzo> Update-Module-Name VMware.PowerCLI

e confermiamo premendo "Y". Terminato l'update verifichiamo quali moduli sono presenti sul sistema ...

PS /Users/lorenzo> Get-Module -Name VMware.* -ListAvailable

Come possiamo notare, ci sono dei moduli che sono presenti in più versioni.


Per una corretta rimozione dei dati, verifichiamo come sono le dipendenze della nuova PowerCLI

PS /Users/lorenzo> (Get-Module VMware.PowerCLI -ListAvailable).RequiredModules




Procediamo con la rimozione corretta dei moduli in questo  modo
  1. Prendiamo nota della versione "esatta" del modulo da rimuovere ...
    PS /Users/lorenzo> Get-Module -Name VMware.PowerCLI -ListAvailable | select version

    Nel nostro caso "10.1.1.8827524" .....
  2. .... procediamo con la rimozione forzata del modulo (indipendentemente dalla dipendenze che possa avere).
    PS /Users/lorenzo> Uninstall-Module -Name VMware.PowerCLI -RequiredVersion 10.1.1.8827524 -force

  3. Verifichiamo che sia presente nel sistema solo la versione corretta ... 
    PS /Users/lorenzo> Get-Module -Name VMware.PowerCLI -ListAvailable

  4. Ripetiamo i precedenti punti da 1 a 3 anche per i moduli "VMware.Vim" e "VMware.VimAutomation.Nsxt"
  5. Verifichiamo la lista completa dei moduli corrisponda a quella dei moduli richiesti dalla PowerCLI 10.2.0

    PS /Users/lorenzo> Get-Module VMware* -ListAvailable

-----------------------------------------------------------
Update del post:

come confermato da Kyle Ruddy non c'è la necessità di tenere tutte le vecchie versioni dei moduli installate nel sistema ... 



giovedì 16 agosto 2018

PowerCli to configure and modify Syslog on Hosts ESXi

Problema
Più che un problema, oggi ho una necessità di modificare le impostazioni SYSLOG di tutti gli Host ESXi che appartengono ad un determinato vCenter per re-indirizzare i log su di un nuovo syslog server. 
Il parametro da modificare è Syslog.global.logHost ... 


e per modificarlo (se effettuato via Web Client) occorre cliccare sul nodo ESXi, Configure -> Advanced System Settings -> ricercare la variabile syslog; selezionare la riga e quindi cliccare su EDIT


... ed una volta modificato il valore con le nuove impostazioni premere OK. Semplice attività da svolgere se di deve fare su un numero limitato di host ESXi, un pò più lungo e macchinoso se la modifica da fare è su un numero N di nodi dove N è >= 50 host ESXi. Da questa semplice problematica, nasce l'esigenza di poter automatizzare questa procedura tramite la scrittura di qualche riga in PowerShell.  


Soluzione
Nota: Per effettuare i test descritti di seguito ho utilizzato gli HOL (Hands On Labs di VMware); prima di provarli in produzione. Nello specifico ho utilizzato il lab HOL-1911-01-SDC.

Per risolvere quanto appena descritto ho realizzato due scripts, il primo per verificare le impostazioni (con la possibilità di re-indirizzarle su un file esterno l'output in modo da potersi salvare le attuali configurazioni), il secondo per modificare i valori della variabile indicata.

Come prima cosa occorre connettersi al vCenter, aprendo una powershell utilizzando il comando ... Connect-VIServer <vCenter Name>. Nel mio caso Connect-VIServer vcsa-01a.corp.local 

Visualizzazione delle impostazioni.

foreach ($ESXi in Get-VMHost) {
Get-AdvancedSetting -Name "Syslog.global.logHost" -Entity $ESXi.Name | Select Value
}


Sostituzione con il nuovo IP "udp://10.1.1.1:514"...

foreach ($ESXi in Get-VMHost) {
Get-AdvancedSetting -Name "Syslog.global.logHost" -Entity $ESXi.Name | Set-AdvancedSetting -Value "udp://10.1.1.1:514" -Confirm:$false
}


verifichiamo l'avvenuta modifica sia via script  ....


che via web client ...


Problema risolto.