eBizTalk - Berichten, Unterhalten, Weiterbilden
Ob Branchendiskurs, Fachartikel oder ein Blick hinter die Unternehmenskulissen: eBizTalk ist die Plattform, die uns auffordert, unsere Leser über Events und Projekte auf dem Laufenden zu halten. Und uns gegenseitig natürlich auch.

Automatisiertes Anlegen von SQL Datenbanken in Windows Azure

Veröffentlicht am 25.04.2014 von André Dammeyer , Cloud , Windows Azure

Für die Entwicklung von Anwendungen auf Windows Azure werden wie in jeder Anwendung verschiedene Bestandteile (zum Beispiel Datenbanken) benötigt. Es gibt im Prinzip zwei Wege, um die benötigten Artefakte in Windows Azure anzulegen: Entweder wird es manuell im Windows Azure Management Portal vorgenommen, oder man nutzt die Windows Azure PowerShell cmdlets. Natürlich ist in Enterpriseprojekten der automatisierte Weg zu bevorzugen, während der manuelle Weg über das Management Portal für ad-hoc Projekte ebenfalls seine Berechtigung hat. In diesem Artikel stelle ich dar, wie einfach es mit den Windows Azure cmdlets ist, from scratch einen Datenbankserver und eine Datenbank in Windows Azure anzulegen.

Voraussetzungen

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.

Installation der Windows Azure cmdlets

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.

Einrichtung der Windows Azure cmdlets

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.

image

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.

Die eigentliche Arbeit kann beginnen…

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.

image

Neuen Datenbankserver anlegen

Mit dem Befehl “>New-AzureSqlDatabaseServer” legen wir nun einen neuen Datenbankserver an. Dafür sind folgende Parameter notwendig, die dem Befehl übergeben werden:

  • Location: Gibt an, in welchem Windows Azure Rechenzentrum der Datenbankserver angelegt werden soll (z.B. “North Europe”).
  • AdministratorLogin: Gibt den Login-Namen des Administrators vom betreffenden Datenbankserver an.
  • AdministratorLoginPassword: Gibt das Passwort des Administrators vom betreffenden Datenbankserver an.

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.

Datenbankserver-Firewall-Regeln anpassen

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.

Neue Datenbank anlegen

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””

Beispiel PowerShell Skript

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.

Zusammenfassung

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.

google_about_ebiz fb_about_ebiztwitter_about_ebizxing_about_ebiz
ebiz_consulting_expertise