Op donderdag 7 april ben ik aanwezig geweest op het VMware Forum 2011 getiteld 'Your Cloud'. Voor de geïnteresseerden heb ik een kleine samenvatting geschreven en tot slot een conclusie waar - volgens mij - de ontwikkelingen op termijn toe leiden.
Hoewel voor veel mensen de 'Cloud' nogal een hype is, zijn er toch een aantal toepassingen te verzinnen waar men al gebruik maakt van cloud computing. Denk maar eens aan de social media; Facebook, Twitter, LinkedIn. Deze toepassingen zijn een voorbeeld van Software As A Service (SaaS) en draaien allemaal in de cloud. Om in bedrijfsomgevingen een eigen cloud te maken zijn ondertussen ook een aantal bouwstenen voorhanden. De filosofie die VMware aanhangt is dat ze een platform bieden dat hun klanten maximale flexibiliteit geeft, zodat deze eenvoudig kan groeien of juist krimpen. Zowel in capaciteit als in functionaliteit. Met eigen produkten of die van haar partners. Het laatste wat ze willen is het tot stand brengen van een zogeheten vendor lock-in. En dit alles in een public, private of hybrid cloud omgeving. Een cloud omgeving die naar wens te veranderen is, oftewel 'My Cloud'.
Ondanks dat dit alles als een mooi marketing verhaal klinkt heeft VMware ook daadwerkelijk een aantal producten in de schappen (en in ontwikkeling) die dit alles mogelijk maakt. En uiteraard doen ze dit niet zonder reden. Volgens een enquête van Goldman Sachs gehouden onder CIO's van grote bedrijven draait namelijk de komende drie jaar zo'n 85% van de workloads nog in eigen datacenters. Toch zal op termijn een gang naar de cloud onafwendbaar zijn.
Waarom is VMware zo stellig in deze bewering? Dat komt omdat bedrijven steeds meer afhankelijk zijn van electronische dienstverlening. De business afdelingen van een bedrijf staan onder een constante druk om de concurrentie het hoofd te bieden of bedrijfsdiensten zo efficiënt en zo goedkoop mogelijk te exploiteren en IT speelt hierin een belangrijke rol. Omdat de huidige IT infrastructuur vaak niet flexibel genoeg is om deze diensten (op tijd) te leveren ontstaat er een spanningsveld tussen business en IT en zal een organisatie soms noodgedwongen ervoor kiezen om IT diensten bij externe partijen af te nemen. De eigen IT organisatie heeft als uitdaging om op tijd te kunnen leveren en tegelijkertijd te zorgen voor beveiliging, naleving van wetten en regelgeving en het beheer van de systemen die nodig zijn om de bedrijfsapplicaties te hosten. En deze voorwaarden zijn bij externe cloud leveranciers niet altijd gewaarborgd. Er zijn dus genoeg kansen om dit gat in de markt op te vullen.
De volgende VMware producten en diensten spelen hierin een bepalende rol en kwamen met nadruk aan bod op het VMware Forum:
Datacenter & Cloud Infrastructure
VMware vShpere (virtualisatie)
VMware vCloud Director (self-service portal)
VMware vCloud Connector (verbind private en public clouds)
VMware vCloud Datacenter Services (public cloud hosting, VMware-based)
Desktop & End-user Computing
VMware View (virtualisatie en beheer van client PCs)
VMware ThinApp (applicatie virtualisatie)
Application Platform
VMware vFabric (middleware)
Infrastructure & Operations Management
VMware vCenter Operations (monitoring)
VMware vCenter Capacity IQ (capacity management)
VMware vCenter Configuration Manager (configration management)
Identity federation
Project Horizon
Door het bijwonen van het VMware Forum kan ik stellen dat het begrip cloud computing mij weer iets duidelijker geworden is. Omdat het momenteel nog een behoorlijk hypeverschijnsel is was het verfrissend om te zien hoe een bedrijf concreet invulling geeft aan dit fenomeen. Persoonlijk ben ik wel gecharmeerd van de route die VMware kiest door keuzevrijheid van hun klanten voorop te stellen.
Wat is belangrijk voor ITers die in dit gebied opereren? ITers zullen moeten leren werken met de tools die cloud leveranciers en hun partners ter beschikking stellen om zowel private als public clouds te realiseren. Of dit nu VMware, Microsoft of een andere leverancier is. In de toekomst zal IT als broker optreden en de vraag van de business moeten vertalen naar een productvraag die geleverd zal moeten worden uit de eigen dienstencatalogus of die van een externe leverancier.
Keynote VMware Forum 2011.
Met dank aan Gerben Kloosterman van virtualarchitect.nl.
maandag 11 april 2011
woensdag 19 januari 2011
Active Directory groepslidmaatschappen kopiëren
Waar je in de AD users & computers snap-in wel gebruikers kunt aanmaken aan de hand van een bestaande gebruiker, is dit bij groepen niet mogelijk. Ook hier komt Powershell weer van pas (icm. Quest cmd-lets).
De onderstaande code zorgt ervoor dat de lidmaatschappen van een brongroep worden overgebracht naar een bestemmingsgroep. Als je het helemaal perfect wil hebben, kun je ook nog code toevoegen om de bestemmingsgroep gescript aan te maken. Maar ik vind het zo al prima:
De onderstaande code zorgt ervoor dat de lidmaatschappen van een brongroep worden overgebracht naar een bestemmingsgroep. Als je het helemaal perfect wil hebben, kun je ook nog code toevoegen om de bestemmingsgroep gescript aan te maken. Maar ik vind het zo al prima:
$srcGroup = "source group"
$dstGroup = "destination group"
Get-QADGroupMember "$srcGroup" | foreach {
add-qadgroupmember "$dstGroup" -Member $_
}
Labels:
microsoft,
powershell,
scripting,
security
dinsdag 23 november 2010
Handmatig opschonen vCenter 4.x database
In een eerdere blogpost meldde ik dat het met vCenter 4.x mogelijk is om met een 'Database Retention Policy' de hoeveelheid bewaarde task- en event data te beheren. Dit is een handige functie om te voorkomen dat de vCenter database volloopt met gegevens waar je toch niets meer mee doet.
Dat mag dan wel erg handig zijn, maar stel dat je een oude database wilt herstellen en daar helemaal geen task- en event data in wilt hebben? Hoe los je zoiets op?
Met vCenter 2.x was er een cleanup database script waarmee dit kon. Deze controleert op de kolom VER_ID in de VPX_VERSION tabel. Bij vCenter 4.x heeft deze kolom een waarde groter dan 5 en dan krijg je de volgende foutmelding:
Het is overigens wel een beetje jammer dat ze de meegeleverde stored procedure cleanup_events_tasks_proc niet geparameteriseerd hebben. Dat zou ik een mooiere oplossing vinden dan een los script dat je van de website moet downloaden.
Dat mag dan wel erg handig zijn, maar stel dat je een oude database wilt herstellen en daar helemaal geen task- en event data in wilt hebben? Hoe los je zoiets op?
Met vCenter 2.x was er een cleanup database script waarmee dit kon. Deze controleert op de kolom VER_ID in de VPX_VERSION tabel. Bij vCenter 4.x heeft deze kolom een waarde groter dan 5 en dan krijg je de volgende foutmelding:
FATAL ERROR: This script was designed for a previous version of VirtualCenter.Maar niet getreurd, er is ook een cleanup script beschikbaar voor vCenter 4.x. Deze is beschikbaar op de VMware knowledge base site via het volgende URL: http://kb.vmware.com/kb/1025914
Het is overigens wel een beetje jammer dat ze de meegeleverde stored procedure cleanup_events_tasks_proc niet geparameteriseerd hebben. Dat zou ik een mooiere oplossing vinden dan een los script dat je van de website moet downloaden.
donderdag 11 november 2010
Windows 2008 RDP: meerdere sessies per gebruiker
Onlangs merkte ik op dat er in Windows 2008 standaard maar één RDP sessie per gebruiker wordt toegestaan. Dit is niet altijd wenselijk, dus zocht ik naar een manier om dit aan te passen. Dit is mogelijk door het volgende commando uit te voeren:
Daarnaast is het mogelijk om deze instelling met een lokaal of group policy af te dwingen.
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fSingleSessionPerUser /t REG_DWORD /d 0x0 /fDaarnaast is het mogelijk om deze instelling met een lokaal of group policy af te dwingen.
woensdag 27 oktober 2010
Expliciete ACLs inventariseren met Powershell
Het is met NTFS erg gemakkelijk om op allerlei niveaus rechten in te stellen. Deze rechten worden meestal ook doorgegeven aan de onderliggende objecten. Om een overzicht te krijgen van objecten waarop expliciet rechten zijn ingesteld, heb ik een klein stukje Powershell code geschreven.
De output van dit script is uiteraard volledig naar wens aan te passen. Wellicht is het ook mogelijk om dit op andere providers toe te passen dan een NTFS filesysteem. Er zijn namelijk ook applicaties zoals MS Exchange en SQL server waarin ACLs worden gebruikt.
Get-ChildItem -Recurse | %{
$Path = $_.FullName
(Get-Acl $Path).Access | where {$_.IsInherited -eq $false} | Select-Object `
@{n='Path';e={ $Path }}
} | sort-object -property Path -unique
De output van dit script is uiteraard volledig naar wens aan te passen. Wellicht is het ook mogelijk om dit op andere providers toe te passen dan een NTFS filesysteem. Er zijn namelijk ook applicaties zoals MS Exchange en SQL server waarin ACLs worden gebruikt.
dinsdag 26 oktober 2010
SQL 2008 Express backups met PowerShell
Als je gebruikt maakt van de Express editie van SQL Server, dan zul je het moeten doen zonder Maintenance Plans. Hoewel dit een zeer eenvoudige tools is om te gebruiken, is er voor SQL 2008 Express een goed alternatief beschikbaar; PowerShell!
Beter goed gejat dan slecht verzonnen was mijn insteek bij deze oplossing. Ik heb gebruik gemaakt van de volgende artikelen:
Beter goed gejat dan slecht verzonnen was mijn insteek bij deze oplossing. Ik heb gebruik gemaakt van de volgende artikelen:
- Running SQL Server PowerShell
- Backup SQL Server Databases with a Windows PowerShell Script
- Retrieve Default SQL Server Backup Folder using PowerShell
#
# Loads the SQL Server Management Objects (SMO)
#
$ErrorActionPreference = "Stop"
$sqlpsreg="HKLM:\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps"
if (Get-ChildItem $sqlpsreg -ErrorAction "SilentlyContinue")
{
throw "SQL Server Provider for Windows PowerShell is not installed."
}
else
{
$item = Get-ItemProperty $sqlpsreg
$sqlpsPath = [System.IO.Path]::GetDirectoryName($item.Path)
}
$assemblylist =
"Microsoft.SqlServer.Management.Common",
"Microsoft.SqlServer.Smo",
"Microsoft.SqlServer.Dmf ",
"Microsoft.SqlServer.Instapi ",
"Microsoft.SqlServer.SqlWmiManagement ",
"Microsoft.SqlServer.ConnectionInfo ",
"Microsoft.SqlServer.SmoExtended ",
"Microsoft.SqlServer.SqlTDiagM ",
"Microsoft.SqlServer.SString ",
"Microsoft.SqlServer.Management.RegisteredServers ",
"Microsoft.SqlServer.Management.Sdk.Sfc ",
"Microsoft.SqlServer.SqlEnum ",
"Microsoft.SqlServer.RegSvrEnum ",
"Microsoft.SqlServer.WmiEnum ",
"Microsoft.SqlServer.ServiceBrokerEnum ",
"Microsoft.SqlServer.ConnectionInfoExtended ",
"Microsoft.SqlServer.Management.Collector ",
"Microsoft.SqlServer.Management.CollectorEnum",
"Microsoft.SqlServer.Management.Dac",
"Microsoft.SqlServer.Management.DacEnum",
"Microsoft.SqlServer.Management.Utility"
foreach ($asm in $assemblylist)
{
$asm = [Reflection.Assembly]::LoadWithPartialName($asm)
}
Push-Location
cd $sqlpsPath
update-FormatData -prependpath SQLProvider.Format.ps1xml
Pop-Location
$s = New-Object ("Microsoft.SqlServer.Management.Smo.Server") "(local)"
$Date = Get-Date
$bkdir = $s.Settings.BackupDirectory
$dbs = $s.Databases
foreach ($db in $dbs)
{
if($db.Name -ne "tempdb") #We don't want to backup the tempdb database
{
$dbname = $db.Name
$dt = get-date $Date -format yyyyMMddHHmm #We use this to create a file name based on the timestamp
$dbBackup = new-object ("Microsoft.SqlServer.Management.Smo.Backup")
$dbBackup.Action = "Database"
$dbBackup.Database = $dbname
$dbBackup.Devices.AddDevice($bkdir + "\" + $dbname + "_" + $dt + ".bak", "File")
$dbBackup.Initialize = $true
$dbBackup.SqlBackup($s)
}
}
$CutOff = 7
$bkdir | get-childitem | where {$_.PSIsContainer -eq $false -AND $_.LastWriteTime.date -lt ($Date).AddDays(-$CutOff)} | Remove-Item
Labels:
microsoft,
powershell,
scripting,
sql server
woensdag 20 oktober 2010
PowerCLI als vervanger voor COS opdrachten - ESX patches
Met de release van vSphere versie 4.1 was het hoge woord eruit. De volgende 'major' release van vSphere zal uitsluitend in een ESXi variant beschikbaar komen.
Deze gedachte speelt al een tijdje in mijn achterhoofd als ik het beheer van ESX servers uitvoer. Vaak maak ik gebruik van een batchfile die door middel van plink, pageant en public/private keypairs commando's uitvoert in het Console Operating System (service console) van een groep ESX servers.
Dit is zometeen dus niet meer mogelijk en zodoende probeer ik tegenwoordig zoveel mogelijk met PowerCLI te doen. Een van de opdrachten die ik probeer om te zetten is het opvragen van geïnstalleerde software. Dit is van belang omdat ik de versie van een geïnstaleerde netwerk driver wil kunnen zien.
Helaas is er geen PowerCLI versie van het RPM commando beschikbaar, maar sinds PowerCLI versie 4.1 is er wel de CMDlet Get-VMHostPatch. Met deze CMDlet is het mogelijk om de geïnstalleerde patches van een ESX hosts uit te lezen. Een nadeel van deze methode is dat deze alleen werkt voor ESX 4 en hoger.
De onderstaande code gebruik ik om een overzicht te maken van alle ESX hosts in een vCenter omgeving:
Deze gedachte speelt al een tijdje in mijn achterhoofd als ik het beheer van ESX servers uitvoer. Vaak maak ik gebruik van een batchfile die door middel van plink, pageant en public/private keypairs commando's uitvoert in het Console Operating System (service console) van een groep ESX servers.
Dit is zometeen dus niet meer mogelijk en zodoende probeer ik tegenwoordig zoveel mogelijk met PowerCLI te doen. Een van de opdrachten die ik probeer om te zetten is het opvragen van geïnstalleerde software. Dit is van belang omdat ik de versie van een geïnstaleerde netwerk driver wil kunnen zien.
Helaas is er geen PowerCLI versie van het RPM commando beschikbaar, maar sinds PowerCLI versie 4.1 is er wel de CMDlet Get-VMHostPatch. Met deze CMDlet is het mogelijk om de geïnstalleerde patches van een ESX hosts uit te lezen. Een nadeel van deze methode is dat deze alleen werkt voor ESX 4 en hoger.
De onderstaande code gebruik ik om een overzicht te maken van alle ESX hosts in een vCenter omgeving:
Get-VMhost | Get-VMHostPatch | select @{N="Host";E={Get-VMhost -Id $_.VMhostid}}, @{N="Build";E={Get-VMhost -Id $_.VMhostid | Get-View | %{$_.Config.Product.build}}}, ID, InstallDate
Abonneren op:
Reacties (Atom)