[VDI] Déployer des VM sous Windows 7 avec Composer/Quickprep sans serveur MKS

Une des particularité du service VMware Composer dans les VM est d’enregistrer automatiquement la licence de Windows 7 sur le serveur KMS lorsque l’on utilise Quickprep.

Si il y a pas de serveur KMS, le provisionning ce trouve bloqué et passe en « Time Out » faute d’avoir pus enregistrer la VM.

Mise à part mettre un serveur KMS (qui est d’ailleurs la seule solution supporté pour déployé du Windows 7) ou utiliser Composer avec Sysprep, la solution vient par la modification de la clé de registre suivante qu’il faut passer à « 1″

HKLMsystem/CurrentControlSet/services/vmware-viewcomposer-ga/SkipLicenseActivation

Attention toute fois, les VM tourneront en version d’évaluation jusqu’à ce que la licence soit activées.

[Livre] Sortie proche de deux livres en Français sur VMware vSphere 5 et View

A noter la sortie Lundi 9 Janvier du nouveau livre d’Eric Maillé : VMware vSphere 5 au sein du Datacenter.

VMware vSphere 5 au sein du Datacenter

Eric est bien connu pour avoir déjà sortie VMware vSphere 4 : mise en place d’une infrastructure virtuelle.

L’autre nouveauté qui est attendu pour le 6 Fevrier est le livre de Damien Bruley : VMware View – Virtualisation des postes de travail (architecture, déploiement, bonnes pratiques…)

VMware View - Virtualisation des postes de travail (architecture, déploiement, bonnes pratiques...)

Dès que j’aurais l’occasion de lire je vous ferrai un retour dessus…

Installer vCenter sur un controlleur de domain

Lorsque l’on veux monter un environnement de test sur un laptop par exemple, on  est souvent confronté à la faible quantité de mémoire disponible sur la machine hôte et donc au nombre de VM total que l’on pourra faire tourner. Le problème c’est que si on un environnement complet il faut un contrôleur de domaine (sic!!) et que vCenter ne s’installe pas sur un contrôleur de domaine (re-sic!!).

La solution la voici mais attention c’est pour du lab et en aucun cas supporté par VMware.

1. Faire l’installation de vCenter Server sur un serveur en Workgroup
2. Lors de l’installation de vCenter, modifié les ports par défaut de LDAP et SSL :

3. Puis continuer l’installation normalement.
4. Une fois l’installation terminé, faite un dcpromo du vCenter

 

Ajout d’un périphérique USB connecté à un ESX dans une VM

A partir de vSphere 4.1 il est possible de connecter un périphérique USB présent sur l’ESX(i) mais il y a tout de même quelques restrictions et limitations à cela (voir KB:

Restrictions :

Le « passthrough » pour les devices USB requière:

  • Virtual hardware version 7 ou supérieur
  • Un USB Arbitrator
  • Un contrôleur USB
  • Un hub ou un périphérique USB

Limitations :

Les limitations du contrôleur USB sont les suivantes :
  • Les modules et le matériel des controlleurs USB qui supportent les périphériques USB 2.0 et 1.1 doivent être présent sur serveur ESX.
  • Il est possible d’ajouter uniquement un contrôleur USB à chaque machines virtuelles
  • L’USB arbitrator peut monitorer un maximum de 15 contrôleur USB.
  • Il est impératif d’ajouter un contrôleur USB à la VM avant de pouvoir ajouter un périphériques USB
  • Il est impératif de supprimer tout les périphériques USB avant de supprimer le contrôleur USB de la VM.

Les limitations des périphériques USB sont les suivants :

  • Vous pouvez ajouter plusieurs périphériques USB à une machine virtuelle qui réside sur un hôte ESX / ESXi pour laquelle les périphériques sont physiquement attachés.
  • Un périphérique USB est disponible pour une seule machine virtuelle à la fois.
  • Vous pouvez ajouter jusqu’à 20 périphériques USB à une machine virtuelle.
  • Les périphériques USB non supportés peuvent ne pas interagir comme prévu avec les autres fonctionnalités des ESX / ESXi. Pour une liste des périphériques USB pris en charge, voir le KB1021345.
  • Avant  d’ajouter à chaud de la mémoire,  des CPU, ou des périphériques PCI, vous devez supprimer tous les périphériques USB. Ajouter à chaud ces ressources déconnecte les périphériques USB, ce qui peut entraîner la perte de données.
  • Lorsque l’on fait un « suspend »  et un « resume » d’une machine virtuelle, les périphériques USB se comportent comme s’ils ont été débranchés, puis reconnectés.
  • La machine virtuelle ne peut pas booter à partir du périphérique USB connecté.
  • Il est possible de faire un vMotion de la VM mais de lors que la VM ou le serveurs ESX sur lequel est connecté le périphérique USB est éteint, la connexion sera perdu.

Pour connecter un périphérique USB :

Ajouter le contrôleur à la VM :

1 – Edit Settings
2 – Add Hardware
3 – Sélectionner USB Contrôleur

Une fois le contrôleur ajouté il suffit d’ajouter le périphériques USB :

1 – Edit Settings
2 – Add Hardware
3 – Sélectionner USB Device

4 – Sélectionner le périphérique USB que vous voulez ajouter à la VM

Et voilà :)

VMware View Client pour Mac OS X

Certains d’entre vous l’attendez, le voici donc : Le client View pour Mac est disponible (ok en Preview mais c’est déjà ça) à l’addresse si-dessous :

http://communities.vmware.com/community/vmtn/desktop/view/client_for_macosx

We are pleased to annouce that VMware View Client with PCoIP for Mac OS X Tech Preview is now available for download!

 

Features In the VMware View Client for Mac OS X

  • Support for Intel-based Macs
  • PCoIP protocol optimized for VMware View 5
  • Full screen support for Mac OS X Lion users
  • Copy and Paste plain text between View 4.x virtual machines and Mac
  • Copy and Paste text, formatted text, and graphics between View 5.x virtual machines and Mac
  • Support optional RSA authentication
  • Enhanced certificate checking
  • Add up to 4 VMware View server shortcuts in VMware View Client

 

[Tips] Utilisation du scripte de déploiement de VMs sans DHCP sous Windows 7 Fr

Le scripte précédent utilise « Local Area Connection » pour NetSh, le problème est que sur un Windows 7 Français le nom de l’interface est « Connexion au réseau Local » et du coup la commande NetSH dans le batch se retrouve en « Connexion au rÙseau Local » .

Le truc et le suivant

  1. En tant qu’administrateur, éditer le fichier %winnt%\System32\autoexec.nt
  2. Ajouter la ligne suivante à la fin « kb16 fr »
  3. Lancer cmd.exe puis edit.exe
  4. Editer le fichier ChangeIP.bat pour bien lire « réseau »
  5. Sauvegarder et là c’est bon
Et oui cela rappel le bon vieux temps de DOS ;-)

[batch] Déploiement de VMs VDI en IP fixe

Il peut arriver que l’on soit obligé de déployer des VMs VDI dans un réseau sans DHCP ce qui forcement pose un petit problème lorsque l’on automatise la création des VMs sous View avec Composer par exemple et que l’on ne veux pas de post-configuration manuelle.

Voici donc un méthode pour scripter la configuration d’IP fixes travers d’un scripte dans la VM (à l’inverse du poste précédent où le scripte PowerShell été externe) :

  1. Tout d’abord on créer un répertoire « c:\NoDHCP  » dans lequel on va mettre le scripte « ChangeIP.bat » et le fichier « hostnames.txt »
  2. Lancer « gpedit.mmc » puis aller dans « Computer Configuration\Windows Settings\Scripts (Startup/Shutdown) « , puis double-click sur Startup et là indiquer le scripte sans paramètre supplémentaire
  3. Editer le fichier ChangeIP.txt pour modifier la passerelle et le masque de sous-réseau ainsi que l’interface à utiliser
  4. Modifier le fichier hostnames.txt pour lire sur chaque ligne <hostname de la vm>,<ip>
Voici le scripte en question :
REM Elvedin Trnjanin - etrnjanin@vmware.com

@echo off

REM Change directory to where Hostnames.txt is located
REM Permission to create, write, delete a file is required

cd C:\NoDHCP

REM Looks for this system's Computer Name in the Hostnames.txt files
REM Creates a tempfile to output the results of findstr, deletes the temp file
REM /I matches if at the beginning of line, /B is case insensitive matching

findstr /I /B %COMPUTERNAME% Hostnames.txt > tempfile
SET /p found= < tempfile
DEL tempfile

REM Checks if the results from findstr include this system's Computer Name.
REM If not, the variable should be empty and the script should exit

if "%found%" == "" (
echo NoDHCP: Could not find hostname to IP mapping, exiting...
EXIT
)

REM Splits the findstr results

for %%a in (%found%) do (
set ip=%%a
)

REM Sets the IP address found above to local connection
REM Windows XP/Windows 7 interface name should be "Local Area Connection"
REM Windows 8 interface name should be "Wired Ethernet Connection"

netsh interface ip set address name="Wired Ethernet Connection" static %ip% 255.255.255.0 192.168.0.1 1

REM Unsets the two environment variables used above

set found=
set ip=

[PowerShell] Fixer l’IP des VM et les déplacer sur le Portgroup de production

Suite à des contraintes pour le déploiement de VM VDI chez un client :

  • IP Fixe pour les VMs
  • Uniquement des contrôleur de domaine Read-Only sur le réseau de production des VM

Il m’a fallut trouver une solution pour automatiser au maximum le déploiement des VMs.

L’idée est de déployer les VMs dans une VLAN de « Pré Déploiement » où la VM pourra joindre un contrôleur de domaine standard afin de s’enregistrer dans celui-ci et obtenant une IP via un serveur DHCP.

Puis de lancer un scripte qui à partir d’un fichier .csv liste les caractéristiques des VM (ip, subnet, gateway, dns) en faisant une comparaison entre le nom de la VM et le nom renseigné dans le fichier va paramétrer ces informations dans la VM, opérer un changement de VLAN pour déplacer la VM sur le réseau de production et enfin redémarrer la VM pour être que tout les agents se réenregistre avec la bonne IP.

Mon fichier .csv est donc de la sorte :

vmname,ipaddress,subnet,gateway,pdns,sdns,pgtgt
xpusvm01,192.168.100.1,255.255.255.0,192.168.100.254,192.168.100.10,192.168.100.11,dvPG_Target
xpfrvm02,192.168.100.2,255.255.255.0,192.168.100.254,192.168.100.10,192.168.100.11,dvPG_Target
xpvm03,192.168.100.3,255.255.255.0,192.168.100.254,192.168.100.10,192.168.100.11,dvPG_Target

et voici le scripte :

function LoadSnapin{
param($PSSnapinName)
if (!(Get-PSSnapin | where {$_.Name -eq $PSSnapinName})){
Add-pssnapin -name $PSSnapinName
 }
}
LoadSnapin -PSSnapinName "VMware.VimAutomation.Core"
# Populating static variables
$vcserver = "vcenter"
$vc_user = "administrator"
$vc_userpwd = "password"
$csvpath = "d:\scripts\listvm.csv"
$prefix = ""
$pgdeploy = ""
# Using variables
# Connect-VIServer $vcserver -User $vc_user -Password $vc_userpwd
# Using current credential
Connect-VIServer $vcserver
# Get VMs present in the deployement portgroup and using a specific prefix
$vm = Get-VM -Name $prefix* | ? { $_ | Get-NetworkAdapter | Where { $_.NetworkName -eq $pgdeploy } }
# Ask for VM guest credentials
$GuestCred = $Host.UI.PromptForCredential("Please enter credentials", "Enter Guest credentials", "", "")
# Import CSV file containing ALL VM
$vmlist = Import-CSV $csvpath
foreach ($virtualMachine in $vm) {
$item = $vmlist | Where {$_.vmname -eq $virtualMachine.name}
# Setting variables
$vmname = $item.vmname
$ipaddr = $item.ipaddress
$subnet = $item.subnet
$gateway = $item.gateway
$pdns = $item.pdns
$sdns = $item.sdns
$portgrouptarget = $item.pgtgt
#Get the current interface info
$GuestInterface = Get-VMGuestNetworkInterface -VM $virtualMachine -GuestCredential $GuestCred
Set-VMGuestNetworkInterface -VMGuestNetworkInterface $GuestInterface -GuestCredential $GuestCred -IP $item.ipaddress -Netmask $item.subnet -Gateway $item.gateway -DNS $item.pdns,$item.sdns
# Moving deployed VM to production portgroup
Get-VM -Name $prefix* | Get-NetworkAdapter | Where { $_.NetworkName -eq $pgdeploy } | Set-NetworkAdapter -NetworkName $portgrouptarget -Confirm:$false
# Restarting VM
Restart-VMGuest -VM $item.vmname -Confirm:$false
}

 

PowerCLI met du temps à démarrer ? voici un tips pour réduire le temps de chargement.

Si vous trouvez qu’au démarrage de VMware vSphere PowerCLI le prompte met du temps à arriver, voici un tips que j’ai trouver en cherchant tout autre chose; il suffit d’aller dans les Options d’Internet Explorer puis dans Advanced et là il suffit de décocher « Check for publisher’s certificate revocation »

Bon honnêtement il ne m’a pas sembler voir de différence ;-)