Neben den Systemvoraussetzungen sind grundsätzliche Kenntnisse im Umgang mit PowerShell Voraussetzung zum Nachvollziehen des Artikels. Zunächst beginnen wir mit den Systemvoraussetzungen, um mit den Windows Azure cmdlets zu arbeiten. Dazu müssen wir diese zunächst installieren und einrichten.
Man benötigt die Windows Azure cmdlets (Download unter …). Mit diesen cmdlets kann man das Deployment und Management von Windows Azure Artefakten realisieren. Die Installation der Windows Azure cmdlets lässt sich über den Microsoft Web Platform Installer durchführen. Nach der Installation kann man die cmdlets einfach über die “Windows Azure PowerShell Console” nutzen.
Dafür muss die Windows Azure PowerShell Console gestartet und der Befehl “>Get-AzurePublishSettingsFile” ausgeführt werden. Es öffnet sich die Anmeldemaske zum Windows Azure Portal im Standard Browser.
Nach der Anmeldung wird das PublishingSettingsFile automatisch aus dem Windows Azure Portal heruntergeladen. Diese Datei muss im lokalen Dateisystem gespeichert werden. In der Datei ist ein sogenanntes Management Certificate mit den Credentials enthalten, welches man über den Befehl “>Import-AzurePublishSettingsFile” in die Windows Azure PowerShell Console importieren kann. Nachdem das PublishingSettingsFile importiert wurde, kann und sollte es aus dem lokalen Dateisystem wieder gelöscht werden und bei nur wenn nötig wieder neu importiert werden, damit die Datei nicht in falsche Hände gerät.
Hinweis: Um Informationen über die aktuell in der Windows Azure PowerShell console konfigurierte Windows Azure Subscription zu erhalten, einfach den Befehl “>Get-AzureSubscription” ausführen.
Hinweis: Wenn man mehrere Subscriptions auf die beschriebene Art und Weise importiert hat, kann man über den Befehl “>Select-AzureSubscription -SubscriptionName “XYZ”” die Subscription auswählen, mit der die Windows Azure PowerShell Console arbeiten soll.
Für die nächsten Schritte benötigen wir die SQL-cmdlets aus den Windows Azure cmdlets. Eine Übersicht über die verfügbaren Windows Azure SQL Database cmdlets bietet die Eingabe des Befehls “>help sql” in die Windows Azure PowerShell console.
Mit dem Befehl “>New-AzureSqlDatabaseServer” legen wir nun einen neuen Datenbankserver an. Dafür sind folgende Parameter notwendig, die dem Befehl übergeben werden:
So wird zum Beispiel mit dem Befehl “>$Server=New-AzureSqlDatabaseServer -location “North Europe” -AdministratorLogin $Login -AdministratorLoginPassword $Password” ein neuer Datenbankserver im Windows Azure Rechenzentrum “North Europe” angelegt. Die Serverinformationen (ServerName, Location und AdministratorLogin) werden in der Variable “$Server” abgelegt.
Als nächstes werden mit dem Befehl “>New-AzureSqlDatabaseServerFirewallRule” die Firewall-Regeln für den Datenbankserver angepasst. Korrekte Firewall-Regeln sind Voraussetzung für den Zugriff auf die Datenbankserver. Wichtig ist zum Beispiel, dass der Zugriff von der aktuellen IP-Adresse des Rechners erlaubt ist, auf dem die Windows Azure PowerShell Console läuft, um mit dieser weitere Aktionen auf dem Datenbankserver durchzuführen. Der Einfachheit halber öffnen wir den Zugriff für den Test-Datenbankserver für alle IP-Adressen mit folgendem Befehl “>New-AzureSqlDatabaseServerFirewallRule -ServerName $Server.ServerName -RuleName “Open” -StartIPAddress “0.0.0.0″ -EndIPAddress “255.255.255.255″”, wobei dieses Vorgehen nicht empfohlen wird.
Schließlich wird eine neue Datenbank angelegt. Zunächst muss man einen entsprechenden DatabaseServer-Kontext erstellen, bevor man die Datenbank anlegen kann. Dazu nutzt man den Befehl “>New-AzureSqlDatabaseServerContext” dem man Credentials bestehend aus dem Administratornamen und dem zugehörigen Passwort für den Datenbankserver mitgeben muss. Dazu erstellt man sich zuerst ein “PSCredential”-Objekt, das in etwa wie folgt aussieht:
“$ServerCredential = new-object System.Management.Automation.PSCredential($Login, ($Password | ConvertTo-SecureString -asPlainText -Force)) $Context = $Server | New-AzureSqlDatabaseServerContext -Credential $ServerCredential”
Im obigen Beispiel enthält die PowerShell-Variable “$Context” den Datenbankserver-Kontext, den man benötigt, um zum Beispiel eine neue Datenbank anzulegen. Die eigentliche Datenbank legt man mit dem Befehl “>New-AzureSqlDatabase” an. Dabei kann man einige Parameter mitgeben, der die Eigenschaft der Datenbank beeinflusst:
“New-AzureSqlDatabase -ConnectionContext $Context -DatabaseName $Database -Edition “Web” -MaxSizeGB 1 -Collation “SQL_Latin1_General_CP1_CI_AS””
Unter _createdb.ps1 finden Sie ein Beispiel PowerShell Skript, mit dem ein Datenbankserver sowie eine Datenbank wie beschrieben angelegt wird. Zusätzlich wird währenddessen ein PowerShell Skript generiert, mit dem die Datenbank und der Datenbankserver wieder entfernt werden können.
Die hier dargestellte Vorgehensweise zum Anlegen von Windows Azure SQL Datenbanken ist prinzipiell auf jedes andere Artefakt in Windows Azure übertragbar. So können problemlos komplette Virtuelle Maschinen oder Websites automatisiert mit den Windows Azure cmdlets angelegt werden. Die Automatisierung solcher Aufgaben hilft dabei, Fehler zu vermeiden und Zeit einzusparen, weil sie häufiges manuelles Aufsetzen der Infrastruktur und dauernde Fehlersuche vermeidet, die falsch aufgesetzte Infrastrukturen leider bedingen.