venerdì 8 giugno 2018

MAC - Installare Homebrew

Problema
Ho la curiosità e la necessità di installare "PowerShell" e la PowerCLI VMware su macOS.

Soluzione
Per prima cosa (come prima componente), se non presente nel proprio sistema, installare Homebrew. Homebrew è una delle soluzioni più diffuse su macOS per la gestione dei pacchetti.

L'installazione è molto semplice si tratta di aprire un "Terminale" e di lanciare il comando riportato sotto...

LIF:~ Lorenzo$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Procedere premendo Invio


Inserire la password e premere Invio per continuare 




Sembra che tutto si sia installato correttamente (Installation succesful). Possiamo procedere con l'installazione della PowerShell Core.


mercoledì 6 giugno 2018

LUN ID 256 missing on VMware


Problema
Creato una nuova LUN con ID 256 da Pure Storage e mappata all'Host Group degli Host VMware, non viene vista VMware. La versione degli host ESXi sono 6.5.

Di seguito si vede la nuova LUN Vol07 (ID 256) aggiunta all'host group.

Effettuato il rescan dell'HBA lato VMware, la LUN non appare nella lista di quelle raggiungibili/disponibili.


Ho quindi verificato nel configuration maximum di VMware se presenti dei limiti per la 6.5. Con sorpresa scopro che il limite per il LUN ID è 16383 (vedi immagine sotto - pag.13 del documento indicato in precedenza).





Soluzione
Il problema è stato risolto come anche indicato da Cody Hosterman andando ad associare alla LUN un ID inferiore al 256 (nel mio caso era disponibile il 246).

Quindi procediamo per step:

  • Rimuovere la LUN dall'Host Group.
  • Ri-Assegnare la LUN all'Host Group, questa volta sostituendo la dicitura "automatic" con il valore desiderato. Nel mio caso LUN ID 246 e confermando l'operazione premendo sul bottone "Confirm"


  • Accedere all'Host ESXi effettuare il Rescan delle LUN e verificare che la LLUN sia presente in lista (come possiamo vedere sotto)



  • giovedì 31 maggio 2018

    Recent tasks pane - doesn't show any activity

    Problema
    Il Pannello delle attività recenti ("Recent Tasks") del Web-Client non mostra nessuna attività .... nonostante si stia gestendo delle atività.





    Soluzione
    Tutto quello che è necessario fare per risolvere la problematica è ripristinare le impostazioni predefinite cliccando su "Reset To Factory Defaults" aprendo il menù a fianco del nome utente utilizzato per loggarsi all'interno del WebClient (come mostrato nell'immagine sotto)



    Accettare le condizioni di reset premendo "Yes". Se sono state effettuate delle personalizzazioni queste verranno perse e re-impostate come originariamente.


    Una volte premuto "YES" se i tasks non vengono ancora visualizzati e necessario effettuare un "log out" ed un "login" dal web client. Come possiamo vedere dall'immagine sotto, tutto riprende a funzionare correttamente.




    lunedì 7 maggio 2018

    VPXV_EVENT_1

    Problema
    In fase di migrazione di un Virtual Center 5.5 dalla piattaforma Windows alla VCSA, il processo è stato interrotto manualmente per insufficienza di spazio disco necessario per terminare la migrazione.

    Ad un secondo lancio del tool di migrazione, il sistema si è fermato nella fase di migrazione dei dati da Windows a VCSA con il seguente messaggio di errore:


    Error while exporting events and task data:pyodbc.ProgrammingError: ('42S01', "[42S01] 
    [Microsoft][SQL Server Native Client 11.0][SQL Server]There is already an object named 
    'VPXV_EVENT_1' in the database. (2714) (SQLExecDirectW)")



    Soluzione
    Da una veloce ricerca in google per "VPXV_EVENT_1", ho trovato subito la KB2148401 che ha permesso di risolvere il problema.
    La soluzione consiste semplicemente, nel rilanciare nuovamente le operazioni di migrazione.

    Da come si può vedere dall'immagine sotto tutto sembra essere migrato come desiderato.




    sabato 5 maggio 2018

    vim-cmd: Working With Snapshot

    Problema
    Di recente ho avuto la necessità di effettuare una "cold" snapshot del vCenter (versione 5.5) senza disporre del client vSphere. 

    Soluzione
    La soluzione è connettersi al nodo ESXi ed utilizzare la CLI. Prima di tutto verificare su quale nodo  sta girando la VM da spegnere (in questo caso il vCenter) ed accertarsi che il servizio SSH sia attivo.

    Connettersi in SSH all'Host e prendere confidenza con il comando "vim-cmd" .


    Per iniziare, otteniamo la lista delle Virtual Machine che girano sull'host ESXi filtrando per la VM che vogliamo trovare (in questo caso il vCenter 01).

    ~ # vim-cmd vmsvc/getallvms|grep -i vc01
    

    In questo modo possiamo ottenere il VMID che identifica la nostra VM, da poter utilizzare successivamente.
    Il successivo comando da lanciare è "vim-cmd vmsvc/snapshot.get <VMID>" per verificare se ci sono già delle snapshot attive e successivamente il "vim-cmd vmsvc/power.shutdown <VMID>" per spegnere la VM. 
    Per verificare lo stato della VM; e verificare che si è spenta lanciare "vim-cmd vmsvc/power.getstate <VMID>"


    Dato che, la VM è nello stato "Powered off" posso lanciare il comando per ottenere la snapshot nel seguente modo  "vim-cmd vmsvc/snapshot.create <VMID> <Snapshot-Name>". 
    Esempio:

    ~ # vim-cmd vmsvc/snapshost.create 31 Pre-Migration2-VCSA 
    Create Snapshot:
    ~ # vim-cmd vmsvc/snapshot.get 31
    Di seguito l'output del comando e la catena delle snapshot associate alla VM. Nel nostro caso quella appena creata. 


     Problema risolto. Possiamo far ripartire il vCenter con lo stesso comando "vim-cmd" e verificarne lo stato come di seguito:

    ~ # vim-cmd vmsvc/power.on 31 
    Powering on VM:
    ~ # vim-cmd vmsvc/power.getstate 31
    ........


    NOTA: Un breve tutorial sulle opzioni e sull'utilizzo del comando "vim-cmd" sono disponibili al seguente link.


    giovedì 3 maggio 2018

    Serial Number: null

    Problema
    Come da immagine sottostante non è possibile reperire il "service tag" direttamente da vSphere web client di un nodo ESXi 6.5 Update 3. 



    Soluzione
    Connettendosi via putty direttamente sull'host è possibile lanciare il comando "esxcli hardware platform get":

    [root@ceda01:~] esxcli hardware platform get

    e reperire il "Serial Number" (e/o Service Tag) desiderato 



    martedì 17 aprile 2018

    Disconnect all CD Drives on all VMs of the Cluster

    Problema
    Spesso capita che gli utenti a seguito di installazioni e/o aggiornamenti lascino i CD agganciati alle VM, e questo può causare dei problemi. In caso di DRS attivo in modalità "Fully Automated" VMs con CD-ROM  attivi non migrano da un host all'altro; stessa condizione quando si ha la necessità di mettere in "Maintenance" un nodo.


    Soluzione
    Per risolvere il problema, si è deciso di creare due script in powershell. Il primo script "ListVMsWithDrive.ps1" per ottenere la lista delle VMs che ha i CD-ROM connessi producendo come output un file di testo che può essere editato ed utilizzato come input del successivo script "DisconnectDrive.ps1" per la rimozione dei CD-ROM dalle VM contenute nel file.

    Di seguito lo script "ListVMsWithCDDrive.ps1" per avere una lista delle VMs con i CD-ROM connessi.

    ########################################################################################
    #  File  : ListVMsWithCDDrive.ps1
    #  Author: Lorenzo Moglie
    #  Date  : 17.04.2018
    #  Description : The output of the script is a txt file, containing the list of VMs with 
    #                the CD-Rom configured for that cluster
    #######################################################################################
    $vCenter = "<VIRTUALCENTER>"
    $CLS = "<CLUSTER-NAME>"
    $User = "<USERNAME>"
    $Password = "<PASSWORD>"
    $VMlist = ".\VMlist.txt"
    Connect-VIServer -Server $vCenter -User $User -password $Password | Out-Null
    #List of VMs with CD-ROM connected for the whole vCenter
    #Get-VM | Get-CDDrive | Where {$_.ISOPath -ne $null} | Sort-Object -Unique ParentID | FT -AutoSize Parent, IsoPath 
    #List of VMs with CD-ROM connected only for the specified Cluster - Output on TXT file
    #The file can be used as input od the script DisconnectDrive.ps1
    Get-VM -Location $CLS  | Get-CDDrive | Where {$_.ISOPath -ne $null} | Sort-Object -Unique ParentID | FT -AutoSize Parent | Out-File $VMlist
    #List of VMs with CD-ROM connected - Output on TXT file 
    #The file can be used as input od the script DisconnectDrive.ps1
    #Get-VM | Get-CDDrive | Where {$_.ISOPath -ne $null} | Sort-Object -Unique ParentID | FT -AutoSize Parent | Out-File $VMlist
    Disconnect-VIServer * -Confirm:$false 

    Di seguito lo script "DisconnectDrive.ps1" per disconnettere i CD-ROM


    ########################################################################################
    #  File  : DisconnectDrive.ps1
    #  Author: Lorenzo Moglie
    #  Date  : 17.04.2018
    #  Description : This script disconnect the CD-ROM from the VMs present in the input 
    #                file
    #######################################################################################
    $vCenter = "<VIRTUALCENTER>"
    $CLS = "<CLUSTER-NAME>"
    $User = "<USERNAME>"
    $Password = "<PASSWORD>"
    $VMlist = ".\VMlist.txt"
    Connect-VIServer -Server $vCenter -User $User -password $Password | Out-Null
    foreach($VM in Get-Content $VMlist) {
        if ($VM -ne $null) {
            if (($VM.TrimEnd() -contains "Parent") -or ($VM.TrimEnd() -contains "------")){       
            } else {
                Get-VM -Name $VM.TrimEnd() |Get-CDDrive | Where {$_.ISOPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$false 
            }
        }
    }
    Disconnect-VIServer * -Confirm:$false 
    Si è deciso di creare due script proprio per avere la possibilità di decidere su quale VM andare o meno a rimuovere il CD-ROM.

    Se non si ha questo tipo di necessità e si vuole disconnettere il CD-ROM sull'intero DataCenter è possibile lanciare il comando di seguito:

     Get-VM | Get-CDDrive | Where {$_.ISOPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$false 



    .