Catégorie : Horizon Page 3 of 8

MàJ : Horizon 2303

Principales nouveautés :

  • Un vTPM peut être ajouté aux instant-clones utilisant la personnalisation ClonePrep or Microsoft Sysprep
  • Les Internal Templates peuvent être créés en mode full-clone afin que les fichiers VMDK ne soient plus verrouillés
  • Support du SSO avec Hybrid Azure Active Directory sur les pools instant-clone
  • Support des GPU NVIDIA L40 et L4 GPU
  • La fonctionnalité Screen Capture permet aux utilisateurs de prendre des screenshots
  • Partage d’applications individuelles avec Microsoft Teams (sous Windows)
  • Support de l’encodage AV1 pour les bureaux avec un GPU Intel ATS-M
  • Windows OS Optimization Tool for VMware Horizon 2303

⚠️ Mon fichier locked.properties a été réinitialisé par cette mise à jour, pensez à vérifier le votre.

Ajout d’instance App Volumes dans Horizon

Depuis la version 2212, il est possible d’ajouter des instances de App Volumes Manager dans la console Horizon.

Quelles sont les avantages de cette option?

  • Monitoring des instances App Volumes depuis la console Horizon
  • Association d’applications App Volumes sur une ferme RDSH instant-clone
  • Applications publiées On Demand (une seule image RDSH pour toutes les applications !)
Cliquer sur Ajouter dans Paramètres > Serveurs > Instances d’App Volumes Manager
Entrer le fqdn du serveur App Volumes Manager ainsi qu’un compte administrateur de celui-ci
Ce message d’erreur s’affichera si un certificat auto-signé est présent sur App Volumes Manager
Passer les 7 étapes suivantes si il n’y a pas d’erreur
Récupérer le certificat auto-signé (appvol_self_vmware.com) sur le serveur App Volumes
Copier le certificat n’importe où sur le/les Connection Server
Sur le Connection Server, ouvrir une MMC avec le composants Certificats (ordinateur local)
Clic droit sur Autorités de certification racines de confiance > Importer
Sélectionner le certificat appvol_self_vmware.com
Laisser le magasin par défaut
Redémarrer le serveur VMware Horizon View Connection Server pour prendre en compte le nouveau certificat.
Répéter la procédure d’ajout de l’instance App Volumes Manager

Le serveur App Volumes est maintenant visible dans le Tableau de bord de la console Horizon
Une batterie RDS peut être associée à une instance App Volumes Manager
Il est désormais possible d’ajouter des applications publiées On Demand depuis App Volumes

Installation et configuration du Cloud Connector 2.3

Le mode de licence par abonnement (subscription) pour VMware Horizon (Saas et On-Premise) gagne de plus de plus de terrain et nécessite un Cloud Connector pour récupérer ses licences chez VMware.

JusteGeek a réalisé un tutoriel pour le déploiement et la configuration de VMware Cloud Connector 2.3 dans un environnement de production.
Un grand merci!

Prérequis
OVA VMware Cloud Connector 2.3 lien


Déployer l’OVA sur une infrastructure vSphere :

  • Root Password (définir ici le mot de passe de l’utilisateur root)
  • Worker Node : à utiliser seulement dans le cadre de déploiement d’un cluster HCC
  • Public Key for ccadmin user : à renseigner si on souhaite utiliser une clé SSH pour se connecter via l’utilisateur ccadmin
  • POD Network : il s’agit du réseau utilisé par les conteneurs (le cloud connector utilise des conteneurs docker). Laisser cette option par défaut ou modifier si besoin.
  • Service Network : réseau utilisé par les services conteneurisés. Laisser cette option par défaut ou modifier si besoin.
  • Proxy Host : renseigner l’adresse de notre serveur proxy
  • Proxy Port : renseigner le port de notre serveur proxy
  • No proxy for : renseigner les plages d’adresses à exclure du proxy, par exemple 10.131.*
  • Proxy SSL : Adresse du serveur Proxy
  • Proxy Username : compte proxy autorisé
  • Proxy Password : mot de passe du compte de service proxy
  • Default Gateway : la gateway du sous réseau dans lequel est déployé le Cloud Connector
  • Domain Name : nom de domaine de la machine
  • Domain Search Path : nom de domaine de recherche
  • Domain Name Servers : renseigner les IP des serveurs DNS
  • Network IP Address : l’adresse IP de l’appliance
  • Network Mask : le masque de sous réseau
  • Une fois le déploiement terminé, démarrer l’appliance.

Paramétrage de l’appliance 

Avant de pouvoir paramétrer l’applicatif « Cloud Connector », il convient d’effectuer les actions ci-dessous sur l’appliance. Pour cela, on va utiliser la console web de VMware :

  • Permettre le login Root
  • # vi /etc/ssh/sshd_config
  • Modifier PermitRootLogin de no à yes.
  • Activer le SSH sur l’appliance
  • # /opt/vmware/bin/configure-adapter.py –sshEnable
  • Redémarrer le service SSH
  • # systemctl restart ssh
  • Désactiver la vérification des certificats (indispensable dans mon contexte car les noms des serveurs ne matchent pas le fqdn de l’instance)

# /opt/vmware/bin/configure-adapter.py –acceptHostNameMismatch

Paramétrage du Cloud Connector

Une fois l’appliance démarrée, il suffit de se connecter dessus en HTTPS :

https://<nom_de_l’appliance>/

Entrer le compte MyVMware

i Si l’interface web du Cloud Connector ne s’affiche pas et qu’une erreur 502 apparaît, il est possible que l’inspection SSL soit activée sur équipement réseau et que cela empêche le bon fonctionnement de l’applicatif.

L’assistant de déploiement s’ouvre et on commence par le Step 1 Connect To Horizon Pod.

Dans la partie Horizon Connection Server saisir le fqdn de l’instance Horizon puis cliquer sur Connect
L’assistant demande ensuite de valider le certificat. Pour cela il suffit de cocher la case I Have verified the above certificate…

Ensuite il convient de renseigner les 3 champs en bas de la fenêtre Domain, Username et Password et de cliquer sur le bouton Connect :

La fenêtre du Step 2 apparaît. Elle demande de renseigner un nom pour l’instance, une localisation et une description :

Cliquer ensuite sur Save. La fenêtre du Step 3 apparait ensuite. Il convient ici de patienter le temps ue le Cloud Connector vérifie la connectivité avec les Connection Servers.

L’appliance ayant besoin de discuter avec le vCenter, une autre fenêtre s’ouvre dans laquelle il convient de renseigner les infos de connexion à celui-ci : Renseigner le nom du vCenter et cliquer sur Get Certificate :

L’assistant demande ensuite de valider le certificat. Pour cela il suffit de cocher la case I Have verified the above certificate…

Renseigner ensuite les informations du compte de service ayant accès au vCenter ainsi que la seconde IP réservée (qui sera utilisée pour les upgrades des connectors) et cliquer sur Save :

La configuration est désormais terminée et le statut de l’installation s’affiche :

Vérification

Pour vérifier que les licences par souscription ont bien été installées, il convient de se connecter sur la console Horizon, puis dans le menu Settings de gauche cliquer sur Product Licensing and Usage :

Tutoriel réalisé par JusteGeek !
Sa chaîne YouTube
Son Twitter

Configurer l’antivirus Microsoft Defender pour VDI

Lors de l’utilisation du bureaux virtuels en clone liés, il est conseillé de configurer Microsoft Defender afin d’améliorer la sécurité et les performances.

Problème 1: Mise à jour
Lors du clonage, la base de signatures peut vite être périmée si le master n’est pas régulièrement mis à jour car Windows Update est généralement désactivé sur les pools Instant-Clones.
Pour résoudre ce problème, il va falloir configurer Microsoft Defender pour qu’il récupère ses mises à jour sur un partage réseau.

Prérequis : Avoir déployer les derniers ADMX pour Windows 10/11


Sur un serveur accessible par les bureaux virtuels, créer un nouveau dossier et le partager :
Utilisateurs authentifiés : Lecture

exemple : création du partage Defender$

Puis créer un sous-dossier nommé :
{00000000-0000-0000-0000-000000000000}

Télécharger le dernier package de définition antivirus (mpam-fe.exe) : https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64

Placer le package dans le dossier {00000000-0000-0000-0000-000000000000} puis extraire le package en ligne de commande :

mpam-fe.exe /X

Dans l’OU des bureaux virtuels, configurer une stratégie de groupe pour : “Définir l’ordre des sources pour le téléchargement des mises à jour des définitions“, activer ce paramètres et le définir sur “FileShares

Définissez l’emplacement de la veille de sécurité pour les clients VDI“, activer ce paramètres et le définir sur \\votre serveur\partage

Désormais, les bureaux virtuels récupèrent le package mis à jour chaque fois chaque fois que le dossier existant est mis à jour avec un nouveau package.

La mise à jour du package peut-être automatisé, voir article Microsoft lien

Problème 2: Scan antivirus

Afin d’éviter les possibles lenteurs au démarrage, il faut désactiver l’analyse après la mise à jour, car par défaut, un scan est automatiquement effectué.

Quant aux scans planifiés, ils sont lancés, par défaut, aléatoirement sur une plage de quatre heures. Il est possible d’activer ce paramètre pour le forcer explicitement.

Script de création de rôle Horizon sur vCenter 8.0

Afin d’accélérer les déploiements et d’éviter les erreurs, j’ai conçu un script Powershell (basé sur un script VMware) dont le but est d’ajouter un rôle dans vCenter pour l’utilisateur vCenter avec Instant-Clones (compte défini dans Horizon).

Ce script est spécifique à vCenter 8.0 mais il peut facilement être adapté à une version antérieure.
Il va créer un rôle nommé “Horizon” avec uniquement les privilèges nécessaires.

Préquis

  • vCenter 8.0+
  • Machine Windows avec VMware PowerCLI
  • Autorisation de lancer des scripts Powershell (Set-ExecutionPolicy)
  • Compte administrateur du vCenter

Utilisation

  • Télécharger le script lien
  • Modifier la variable $viserver avec le fqdn de votre vCenter
  • Exécuter le script

Import-Module VMware.VimAutomation.Core
$Role = "Horizon"

$viserver = "vcenter.domaine.local"

Connect-VIServer -server $viServer
$RoleIds = @()

# Opérations cryptographiques
"Cryptographer.Access", "Cryptographer.Clone", "Cryptographer.Decrypt", 
"Cryptographer.Encrypt", "Cryptographer.ManageKeyServers", "Cryptographer.Migrate", "Cryptographer.RegisterHost", 

# Banque de données
"Datastore.AllocateSpace", "Datastore.Browse", 

# Dossier
"Folder.Create", "Folder.Delete", 

# Global
"Global.DisableMethods", "Global.EnableMethods", "Global.ManageCustomFields", 
"Global.SetCustomField", "Global.VCServer", 

# Hote	
"Host.Config.AdvancedConfig", "Host.Inventory.EditCluster", 

# Reseau
"Network.Assign", 

# Ressource
"Resource.AssignVMToPool", "Resource.HotMigrate", 

# strategies de stockage de machine virtuelle
"StorageProfile.Apply", "StorageProfile.EditPermissions", "StorageProfile.Update", 
"StorageProfile.View", "StorageProfile.ViewPermissions", "System.Anonymous", 

# Systeme
"System.Read", "System.View", 

# Machine virtuelle / Configuration
"VirtualMachine.Config.AddExistingDisk", "VirtualMachine.Config.AddNewDisk", "VirtualMachine.Config.AddRemoveDevice", 
"VirtualMachine.Config.AdvancedConfig", "VirtualMachine.Config.Annotation", "VirtualMachine.Config.CPUCount", 
"VirtualMachine.Config.ChangeTracking", "VirtualMachine.Config.DiskExtend", "VirtualMachine.Config.DiskLease", 
"VirtualMachine.Config.EditDevice", "VirtualMachine.Config.HostUSBDevice", "VirtualMachine.Config.ManagedBy", 
"VirtualMachine.Config.Memory", "VirtualMachine.Config.MksControl", "VirtualMachine.Config.QueryFTCompatibility", 
"VirtualMachine.Config.QueryUnownedFiles", "VirtualMachine.Config.RawDevice", "VirtualMachine.Config.ReloadFromPath", 
"VirtualMachine.Config.RemoveDisk", "VirtualMachine.Config.Rename", "VirtualMachine.Config.ResetGuestInfo", 
"VirtualMachine.Config.Resource", "VirtualMachine.Config.Settings", "VirtualMachine.Config.SwapPlacement", 
"VirtualMachine.Config.ToggleForkParent", "VirtualMachine.Config.UpgradeVirtualHardware", "VirtualMachine.Interact.DeviceConnection", 

# Machine virtuelle / Interaction
"VirtualMachine.Interact.PowerOff", "VirtualMachine.Interact.PowerOn", "VirtualMachine.Interact.Reset", 
"VirtualMachine.Interact.SESparseMaintenance", "VirtualMachine.Interact.Suspend", "VirtualMachine.Inventory.Create", 

# Machine virtuelle / Inventaire
"VirtualMachine.Inventory.CreateFromExisting", "VirtualMachine.Inventory.Delete", "VirtualMachine.Inventory.Move", 
"VirtualMachine.Inventory.Register", "VirtualMachine.Inventory.Unregister", 

# Machine virtuelle / Provisionnement
"VirtualMachine.Provisioning.Clone", "VirtualMachine.Provisioning.CloneTemplate", "VirtualMachine.Provisioning.Customize", "VirtualMachine.Provisioning.DiskRandomAccess", 
"VirtualMachine.Provisioning.ReadCustSpecs", "VirtualMachine.Provisioning.DeployTemplate", 

# Machine virtuelle / Gestion des snapshots
"VirtualMachine.State.CreateSnapshot", "VirtualMachine.State.RemoveSnapshot", 
"VirtualMachine.State.RenameSnapshot", "VirtualMachine.State.RevertToSnapshot" |

 Foreach-Object{
    $RoleIds += $_
}
New-VIRole -name $Role -Privilege (Get-VIPrivilege -Server $viserver -id $RoleIds) -Server $viserver

Set-VIRole -Role $Role -AddPrivilege (Get-VIPrivilege -Server $viserver -id $RoleIds) -Server $viserver
  • Ajouter une nouvelle autorisation à la racine du vCenter pour l’utilisateur vCenter avec le rôle Horizon

ℹ️ Il faut parfois se délogger de vSphere Web Client pour voir apparaître le nouveau rôle.

vSphere 8.0 : Stockage basé sur le profil ?

Le compte de service vCenter utilisé par VMware Horizon nécessite un certain nombre de privilèges pour effectuer des opérations sur les clones.

Dans un environnement vSAN ou Virtual Volumes, la documentation indique qu’il faut tous les privilèges du groupe Stockage basé sur le profil (Profile Driven Storage).

Hors en vSphere 8.0, ce groupe de privilèges n’existe plus et est remplacé par le groupe Stratégies de stockage de machine virtuelle (VM storage policies).

En conséquence, il faudra ajouter ces privilèges en lieu et place de ceux spécifiés dans la documentation de VMware Horizon lien

Syslog et événements dans le système de fichiers

Dans la console Horizon, il est possible de configurer une base de données d’événements, mais il est aussi possible de paramétrer un serveur Syslog ou un partage réseau pour y stocker ces informations.
Toutefois, une base de données permet une analyse simplifiée avec des outils de reporting tiers ainsi qu’un affichage direct dans la console Horizon.

Syslog

Quand un serveur Syslog est paramétré, les informations de la base d’événements sont envoyées avec le protocole UDP sous forme de message et sont consignées dans le Syslog.

Les messages dans le Syslog reflètent ceux de la base d’événements.
Selon l’éditeur, des notifications et des alarmes peuvent être générées.


Evénements dans le système de fichiers

Les Evénements dans le système de fichiers reflètent également ceux de la base d’événements et sont stockés par défaut au format Syslog dans le dossier “C:\ProgramData\VMware\VDM\events”.
Un maximum de 300MB est conservé localement.
Ce répertoire peut être déplacé vers un partage réseau pour conserver une quantité supérieure de logs.

Exemple de logs sur un partage CIFS :

Il est possible de configurer cette fonction avec la commande vdmadmin :

vdmadmin -I -eventSyslog -enable -path \\srv\share -user domain\user -password password 

Configurer PostgreSQL pour Horizon

Cet article explique comment configurer une base de données PostgreSQL sous Windows pour stocker les événements de VMware Horizon.
PostgreSQL a l’avantage d’être gratuit et Open-Source.

Prérequis :
– Une machine Windows Server 2016 ou 2019 (2 vCPU, 6 Go RAM)
– Package d’installation PostgreSQL lien
– Port TCP 5432 ouvert vers Windows Server depuis le Connection Server

Etape 1
Installer PostgreSQL sur la machine Windows Server en suivant ce tutoriel :
https://stacklima.com/installer-postgresql-sur-windows/

Etape 2
Se connecter sur la console de Windows Server et lancer pgAdmin

Créer un Master Password

Se connecter au serveur PostgreSQL avec le mot de passe défini lors de installation

Créer un nouvel utilisateur

Nommer le horizon et lui affecter le privilège Can login

Créer une nouvelle base de données

Nommer la base de données : horizon_events
Mettre l’utilisateur horizon en tant que Owner

Ouvrir l’explorateur sur Windows Server
Editer le fichier C:\Program Files\PostgreSQL\15\data\pg_hba.conf

Trouver la section #IPv4 local connections
Ajouter la ligne suivante où xxx.xxx.xxx.xxx correspond à l’adresse IP du Connection Server

host    all     all    xxx.xxx.xxx.xxx/32        scram-sha-256

Dans Horizon Console> Paramètres> Configuration d’événements
Entrer les informations du serveur et de la base de données

Si tout est bien paramétré, un nouvel événement sera enregistré

Améliorer les performances des VMs vGPU

Il est possible d’améliorer les performances des bureaux virtuels utilisant un vGPU en configurant deux paramètres dans ESXi et Horizon Connection Server afin d’utiliser le mode Max Performance.

Ce mode doit etre activé uniquement si un seul profil vGPU est utilisé dans le pod Horizon.

Etape 1 : Configurer la Stratégie d’attribution de GPU

Etape 2 : Activer le mode Max Performance

  • Se connecter sur la console du Connection Server
  • Ouvrir Modification ADSI
  • Ajouter une nouvelle connexion
  • Se connecter à DC=vdi, DC=vmware, DC=int sur localhost:389
  • Développer OU=Properties et sélectionner OU=VirtualCenter
  • Sur le CN, faire un clic droit, Propriétés,
  • Modifier l’attribut pae-NameValuePair et ajouter la valeur suivante :
    vc-maxperfsinglegpuprofile=1

Suppression des logs du master

Lors de l’optimisation de la VM master Horizon avec VMware OSOT, les fichiers de logs de l’agent Horizon dans le dossier C:\ProgramData\VMware\VDM\logs ne sont pas supprimés.
Cela peut être gênant lors du debugging des bureaux virtuels ou du template interne car ces fichiers peuvent vite devenir volumineux.

Pour supprimer l’ensemble des logs, le script suivant doit être lancé en Powershell sur le master avant son extinction.

<# Arrêt des process Horizon #>
net stop tsdrvdisvc
net stop WSNM
net stop vmware_print_redir_service
net stop vmwrxgservice
net stop Spooler
net stop v4v_agent
net stop VMBlast
net stop hzMonService
net stop vmware-viewcomposer-ga
net stop ftscansvchv
net stop ftnlsv3hv
net stop vmwsprrdpsrv
taskkill /IM "scanner.exe" /F
taskkill /IM "vmwareviewclipboard.exe" /F
taskkill /IM "WSSM.exe" /F
taskkill /IM "vmwsprrdp.exe" /F

<# Suppression des fichiers de logs #>
Remove-Item C:\ProgramData\VMware\VDM\logs\* -Force -ErrorAction SilentlyContinue -Recurse
Remove-Item 'C:\ProgramData\VMware\VMware Blast\*' -Force -ErrorAction SilentlyContinue -Recurse

Script PowerShell disponible ici lien

Page 3 of 8

Fièrement propulsé par WordPress & Thème par Anders Norén