Alors que je me faisais une joie d’avoir un client vSphere « supporté » en HTML5, quelle ne fut pas ma surprise à la connexion sur le VCSA (vCenter Server Appliance) fraichement upgradé :

Oui, vous avez bien vu, il y a toujours 2 clients, un avec Flash et l’autre en HTML5 mais avec des fonctionnalités partielles.

Je ne m’attendais pas à ça mais VMware a simplement pris le fling du client HTML5 et collé un tampon supporté dessus !

Pour rappel, les flings sont des outils mis à disposition en mode laboratoire expérimental, ils ne devraient pas être utilisés en production au dire même de VMware, mais c’est une source d’outils très pratique et communément utilisée par beaucoup d’Admin. Vous pouvez explorer cette caisse à outil ici : Labs VMware Flings

Du coup, j’ai fait quelques recherches sur les différences entre les deux clients, la liste est un peu longue, elle se trouve ici : vSphere 6.5 HTML 5 functionnality support.

Des mises à jour régulières sont promises et elles seront poussées d’abord sur le fling qui lui reste bien sur non supporté…

 

A noter la convention de nommage, le « vSphere Web Client » correspond au client Flash et le « vSphere Client » le HTML5.

 

Lien vers le fling du client html5 à réserver pour vos labs : vsphere-html5-web-client.

 

A la suite d’une commande un peu rapide, je me suis retrouvé à déployer un cluster Nutanix Dell à base d’AHV, seulement le client (pour le moment 😉 ) préfère avoir un ESXi.

Apres plusieurs tentatives avec l’option one-click convert qui s’est achevé par un échec systématique, j’ai décidé de partir sur foundation pour pousser l’hyperviseur de mon choix. (Même si ce n’est pas supporté par Dell)

Avec Foundation 3.5 rien de plus simple, oubliez les vieux tuto disponible à droite à gauche sur le net, ici plus de VM à monter un simple applet JAVA permet de re-imager vos noeuds.

Le guide « Field-Installation-Guide-v3-5 » de Nutanix est vraiment bien fait mais je tiens à mettre en avant un petit point qui m’a fait perdre pas mal de temps :

« It is not necessary to download an AHV ISO because both Foundation and the AOS bundle include an AHV installation bundle. However, you have the option to download an AHV upgrade installation bundle if you want to install a non-default version of AHV. »

Upload ISO ESX impossible dans foundation tant que vous n’avez pas uploadé l’iso AHV, c’est très logique et noté noir sur blanc dans la doc mais c’est moi qui buggais dessus plutot que foundation…

 

 

L’option est ensuite deverrouillée :

 

Je n’ai pas eu le temps plus tôt mais je comptais faire un petit retour sur la conference .Next Nutanix qui s’est déroulé à Vienne du 8 au 10 Novembre !

Vraiment beaucoup de bonnes nouveautés annoncées pour la prochaine version nommée Asterix ! J’ai egalement beneficié de quelques sessions avec le staff nutanix qui ont été très enrichissantes  en particulier Citrix-AHV.

next2016

Ce vendredi 30 Septembre, deuxième réunion du NCUG auquel je participe après les locaux de Microsoft, c’est chez Citrix que le meeting a eu lieu avec la présence encore une fois encore de très bons intervenants :

Simon Mijolovic expert sécurité chez Nutanix, je n’aurai jamais imaginé un tel niveau d’engagement de l’éditeur pour la sécurisation de ses produits.

Puis Kees Baggerman qui m’a définitivement donné envie de tester Xendesktop sur AHV !

L’hôte de la journée représenté par Fabrice Colas, a fait une présentation de quelques-unes des nouvelles fonctionnalités 7.11 et l’intégration des produits Norskale avec le Workplace Environement Management.

Une rencontre vraiment enrichissante, et un vrai plaisir de rencontrer ces experts très accessibles, vivement la prochaine !

En parallèle des NCUG, le French Citrix User Group Community  (FCUGC) propose de réserver le 9 novembre dans notre calendrier, ce que je ferai sauf si Vienne m’ouvre les bras du 8 au 10 Octobre pour les .NEXT Conference  Nutanix.

image-1

Effectivement pas d’article technique ce soir, mais la mise en place d’un nouveau template et du logo icone, n’hésitez pas à me dire ce que vous en pensez dans les commentaires à la fin du post.

On m’a souvent reprocher mon précédent thème trop sombre et les options peu accessible, j’espère que le côté coloré et fonctionnel vous plairons plus !

Avec la précédente version de Prism Central 4.6, la question de l’update ne s’était pas posée puisqu’elle n’était pas possible, il fallait absolument procéder à une nouvelle installation de l’appliance.

Pour la 4.7, l’update est bien réalisable mais n’ayant pas accès à internet depuis cette machine, j’ai cherché à uploader directement les 2 fichiers de mise à niveau à savoir les binaires et le fichier de metadata.

Aucune trace de ces fichiers dans la section réservée à Prism Central sur le site de Nutanix, simplement les sources d’installations complète en fonction de vos hyperviseurs.

prism_centra_471

Finalement, il suffit faire la mise à jours de Prism Central avec les fichiers de la version de l’AOS (NOS), en prenant le fichier tar et le fichier de metadata.

aos471

 

prismupdate

uploading

Et voilà, bonne upgrade !

upgrade

 

Nous avions déjà un export automatique vers notre CMDB en place mais suite à une demande de modification, je me suis dis qu’il était temps de remplacer notre bon vieux get-vm.

Je pensais arriver à un meilleur résultat, mais les requêtes pour le Datacenter et le Cluster ralentissent vraiment l’exécution, malgré ça, l’ancien script prenait 2h55, le nouveau 39min soit presque 4.5 fois plus rapide pour le même scope soit 5 vCenters et un peu plus de 2200VMs.

@"

===============================================================================
Description:   Exports VM Informations to CMDB
Usage:         Schedule task on vCenter
===============================================================================

"@
$StartMs = (Get-Date)
0..1000 | ForEach-Object {$i++}

#Standard PowerCli cmdlets
add-pssnapin VMware.VimAutomation.Core

#Renseigner votre/vos vCenter(s) separé par des virgules
Write-Host "Renseigner votre/vos vCenter(s) separé(s) par des virgules"
$vCenters= Read-Host "VCENTER_NAME"
$Path = Read-Host "Path"

#Date
$Date = Get-Date -Format yyyy-MM-dd

Write-Host "Renseigner le chemin d'export du fichier resultat ainsi que le nom du fichier"
$ExportFilePath = Read-host "$Path\$date\Export-CMDB.csv"

$listVM=@("VMName,VMHostname,Datacenter,Powerstate,OS,IPAddress,MacAddress,NetworkName,ToolsStatus,Cluster,NumCPU,MemMb,Datastore,DiskGB,DiskFree")

 Foreach ($vCenter in $vCenters) {
 Connect-VIServer $vCenter

 $VMs = Get-View -ViewType VirtualMachine
 

 
ForEach ($vm in $VMs) {
      $VMName = $vm.Name
      $VMHostname = $vm.Guest.Hostname
      $parentObj = Get-View $vm.Parent
      #while ($parentObj -isnot [VMware.Vim.Datacenter]) {$parentObj = Get-View $parentObj.Parent | select -Unique}
      while ($parentObj -isnot [VMware.Vim.Datacenter]) {$parentObj = Get-View $parentObj.Parent}
      #Boucle et remonte d'un niveau dans l'arborescence jusqu'à trouver le datacenter
      $Datacenter =   $parentObj.Name
      $Powerstate = $vm.Summary.Runtime.PowerState
      $OS = $vm.config.GuestFullName
      $IPAddress = $vm.Guest.Net.IPAddress
      $MacAddress = $vm.Guest.net.MacAddress
      $NetworkName = $vm.Guest.net.Network
      $ToolsStatus = $vm.Guest.ToolsStatus
      ## use UpdateViewData() to populate the linked view, then access said linked view
      $vm.UpdateViewData("Runtime.Host.Parent.Name")
      $Cluster = $vm.Runtime.LinkedView.Host.LinkedView.Parent.Name
      $NumCPU = $vm.Summary.Config.NumCpu
      $MemMb = $vm.Summary.Config.MemorySizeMB
      $Datastore = $vm.Summary.Config.VmPathName.Split()[0].split('[]')
      #le premier split prend la premiere expression, le deuxieme retire les crochets
      $DiskGB = [Math]::Round((($vm.Guest.Disk | Measure-Object -Property Capacity -Sum).Sum / 1GB),2)
      $DiskFree = [Math]::Round((($vm.Guest.Disk | Measure-Object -Property FreeSpace -Sum).Sum / 1GB),2)
      $listVM+=("$VMName,$VMHostname,$Datacenter,$Powerstate,$OS,$IPAddress,$MacAddress,$NetworkName,$ToolsStatus,$Cluster,$NumCPU,$MemMb,$Datastore,$DiskGB,$DiskFree")
      Write-Host "Traitement de la machine $VMName" -ForegroundColor Yellow
      }
Disconnect-VIServer $Vcenter -Force -Confirm:$false
}

$listVM > $ExportFilePath
Write-Host "Creation du Fichier résultat" -ForegroundColor Red


Write-Host "Déconnection des vCenters" -ForegroundColor Gray
#$VC = Disconnect-VIServer * -Confirm:$False

$EndMs = (Get-Date)
Write-Host "Le script s'est executé en  $($EndMs - $StartMs)"

 

Je ne l’avais pas anticipé, mais lors de la suppresion d’une VM VDI Côté Xendesktop, le nettoyage du Protection Domain côté Nutanix n’est pas automatique si bien qu’hier j’ai eu un petit warning « Unable to locate VM with name ‘VM_Name and internal ID ‘60069aa8-29d5-2c52-6827-945372df5a5a’ in protection domain ‘ProtectionDomain_Name’.

Capture

Voici le script que j’utilise pour faire le nettoyage :

#Chargement des Addins
Add-PSSnapin Citrix*
Add-PSSnapin Nutanix*

#Renseigner votre broker Xendesktop
$XenBroker = Read-Host "Broker_name"

#Renseigner vos IP CVM Nutanix
$NutanixCluster1 = Read-Host "IP_VCM_Cluster1"
$NutanixCluster2 = Read-Host "IP_VCM_Cluster2"

#Connexion aux clusters Nutanix
Connect-NTNXCluster -Server:$NutanixCluster1 -UserName:admin -AcceptInvalidSSLCerts
Connect-NTNXCluster -Server:$NutanixCluster2 -UserName:admin -AcceptInvalidSSLCerts

#Recupération des VDI Xen
$VDIs=Get-ProvVM -AdminAddress $XenBroker

#Création de la liste des VDI Xen
$XEN_VMs = $VDIs.VMName

#Récuperation de la liste de Protection Domain Nutanix
$NUT_VMs = Get-NTNXPRotectionDomain

#Création de la liste des VM Nutanix
$NUT_VMS = $NUT_VMS.vms.vmName

#Comparaison des deux precedentes listes, conservation des machines présentent côté nutanix, absentent côté Vdi Xendesktop
$VMs2Delete = Compare-Object -ReferenceObject $NUT_VMs -DifferenceObject $XEN_VMs | Where { $_.SideIndicator -eq "<=" }

#Pour chaque VM de cette liste à supprimer, recuperation du Protection Domaine associé et suppresion de la VM de celui-ci
foreach ($VM in $VMs2Delete) {
$ProtectionDomain = Get-NTNXProtectionDomain | Where {$_.vms.vmname -like $VM.InputObject}
Remove-NTNXProtectionDomainVM -name $ProtectionDomain.name -input $VM.InputObject
}

#Déco et fin du script
Disconnect-NTNXCluster *

Il y aura un peu de rouge à l’exécution étant donné que le script essayera de supprimer la VM sur les 2 Sites donc pas d’inquiétude.