mardi 28 juillet 2009

Ajouter une Legacy Adapter NIC sous Hyper-V avec Powershell WMI

Le but de ce post est d'ajouter une carte réseau virtuelle à une machine virtuelle existante sous Hyper-V sans utiliser de cmd-let supplémentaire ni la suite SCVMM.
La meilleure méthode est alors d'utiliser WMI piloté par PowerShell. Il faut procéder enplusieurs étapes :
  1. Rechercher le switch virtuel sur lequel va se connecter la future carte
  2. Instancier le provider WMI de management des switch virtuel et créer un nouveau port réseau virtuel sur ce nouveau switch
  3. Copier le modèle de périphérique virtuel par défaut pour la carte réseau virtuelle non synthétique (installé par défaut quand Hyper-V est installé)
  4. Modifier les paramètres de la copie
  5. Rechercher la machine virtuelle cible
  6. Instancier le porvider WMI de management des systèmes virtuels
  7. Ajouter la carte réseau copiée, sur le nouveau port à la machine virtuelle

Le nombre d'étapes est assez important et démontre la complexité de l'interface WMI d'Hyper-V :-(

La function suivante PowerShell effectue toutes ces opération d'un seul coup :



#=================================================
# Functions
#=================================================
# Function AddLegacyNIC
# Add a Legacy Adapter Card to an existing VM

#-------------------------------------------------
function AddLegacyNIC {
param ([string]$VirtualMachine, [string]$VirtualNetworkName, [string]$Description = "NEW Legacy Network Adapter")

#Récupération de la VM
$VM = Get-WmiObject -NameSpace root/Virtualization -Query "select * from Msvm_ComputerSystem where ElementName = '$VirtualMachine'"

#Creation d'un port sur le switch virtuel avec un nom sous forme de GUID
$VS = Get-WmiObject -NameSpace root/Virtualization -Query "select * from Msvm_VirtualSwitch where ElementName = '$VirtualNetworkName'"
$VSMS = Get-WmiObject -NameSpace root/Virtualization -Class Msvm_VirtualSwitchManagementService
$NewPortName = [GUID]::NewGuid().ToString()
$NewVSPort = $VSMS.CreateSwitchPort($VS, $NewPortName , $NewPortName , "")

#Copie de la carte Legacy Ethernet Adapter par defaut Hyper-V
$LegacyNIC = Get-WmiObject -NameSpace root/Virtualization -class Msvm_EmulatedEthernetPortSettingData Where-Object {$_.InstanceID -like "*Default*"}
$NewLegacyNIC = $LegacyNIC.psbase.Clone()
$NewLegacyNIC.Connection = $NewVSPort.CreatedSwitchPort
$NewLegacyNIC.ElementName = $Description

#Ajout de la Carte à la VM
$VMMS = Get-WmiObject -NameSpace root/Virtualization -Class Msvm_VirtualSystemManagementService
$VMMS.AddVirtualSystemResources($VM.__PATH, $NewLegacyNIC.psbase.gettext(1))
}

#=================================================
# Script body
#=================================================
AddLegacyNIC "NomDeLaVM" "VLAN Principal"

Voila :-)

mercredi 21 janvier 2009

Agent SCOM sur Windows Server 2008 Core

En cas de mauvaise connectivité, comme par exemple pour déployer des agents sur des sites distants, le mode Push pour installer l'agent SCOM ne fonctionne pas toujours...
Si le site distant à superviser est en Windows Server 2008 Core, cela se complique.
Obligé d'installer l'agent SCOM uniquement en ligne de commande.

Le fichier msi d'installation de l'agent est situé dans le répertoire Agent du DVD SCOM en fonction du type de processeur.

La ligne de commande suivante fait le reste :
  • msiexec.exe /i MOMAgent.msi /qn /l*v \logs\MOMAgent_install.log USE_SETTINGS_FROM_AD=0 MANAGEMENT_GROUP= MANAGEMENT_SERVER_DNS= ACTIONS_USE_COMPUTER_ACCOUNT=0 ACTIONSUSER= ACTIONSDOMAIN= ACTIONSPASSWORD=
En simplifié, cela donne pour la majeure partie des cas quelquechose comme ca :
  • msiexec /i MOMAgent.msi /qn MANAGEMENT_GROUP=MG1 MANAGEMENT_SERVER_DNS=swh-adm05.dev.ent
Plus qu'à autoriser l'agent dans la console SCOM.

lundi 19 janvier 2009

SCVMM 2008 Configuration Analyzer

Assez méconnu, l'analyseur de configuration SCVMM 2008 est bien utile pour valider les paramètres de configuration de SCVMM 2008.

Téléchargeable ici.

Cet outil s'appuie sur Microsoft Baseline Configuration Analyzer, téléchargeable ici.

SCVMM Host Needs Attention

Si dans votre console SCVMM, vous avez le status Needs Attention sur un hôte, comme sur la capture ci-dessous :

C'est certainement qu'il manque des correctifs, mais lesquels...
  • Correctif BITS pour Windows 2008 x64 ( KB956774)
  • Eventuellement le correctif pour Hyper-V (KB956589)

dimanche 18 janvier 2009

Intégration entre SCOM 2007 R2 et SCVMM 2008

C'est très intéressant pour maîtriser totalement son infrastructure virtuelle d'intégrer SCOM et SCVMM.

Préparation côté SCOM
  • Installer SCOM 2007 R2 sur ce serveur
  • Copier les Management Pack du DVD de SCVMM 2008 répertoire amd64\VirtualizationMP vers C:\Program Files\System Center Management Packs\VirtualizationMP
  • Importer les Management Pack à partir du répertoire précédent - Résoudre les dépendance grace au Management Pack Catalog - L'opération est plutôt longue
  • Créer un compte de service dans le domaine, par exemple svcScVmm (s'il n'a pas été créé auparavant)
  • Créer un groupe local au domaine dans le domaine, par exemple Operations Manager Admins
  • Ajouter dans ce groupe le compte de service svcScVmm
  • Dans la console SCOM 2007 Administration/Security/User Roles, ajouter le groupe précédent au rôle Operations Manager Administrators comme ci-dessous :



Intégration côté SCVMM 2008

  • Installer SCVMM 2008 sur un serveur
  • Installer la console SCOM 2007 R2 sur le serveur SCVMM
  • Changer le compte de service du service Virtual Machine Manager de LocalSystem vers svcScVmm
  • Grace à l'outil d'administration SQL, en local ou a distance, se connecter au serveur SCVMM, créer un login pour svcScVmm et lui donner le rôle de db_owner sur la base de données VirtualManagerDB
  • Arrêter et redémarrer le service Virtual Machine Manager
  • Dans la console SCVMM Administration/System Center/Operations Manager Server, ajouter le nom du serveur SCOM R2. Cela peut prendre un peu de temps.


Et voila ! Les alertes ne vont pas tarder à arriver dans la console SCOM...