blog.atwork.at

news and know-how about microsoft, technology, cloud and more.

Automation von Azure-Teil 4

Neben den neuen und umfangreichen Möglichkeiten Microsoft Azure zu automatisieren (Teil 1, 2, 3) bleiben natürlich auch ganz erprobte und einfache Mittel, Websites zu deployen: mit den guten, alten File Transfer Protocol.

Dieser Weg ist vielfach bekannt und kann mit wenig Aufwand (da FTP ja in Windows eingebaut ist) verwendet werden, um verschiedene lokale Deployments zu verwenden.

Per FTP Client

Dazu wird zunächst von der existierenden Website das Publish Profile downgeloadet.

image

Das heruntergeladene File (bei mir miniblog2.azurewebsites.net.PublishSettings) beinhaltet die relevanten Daten für die Web- und FTP-Verbindung - hier gelb markiert.

image

Diese Daten können in einen FTP-Client (wie etwa im freien FileZilla oder auch im Windows Explorer) verwendet werden, hier im Beispiel mit FileZilla.

Es funktioniert Plain FTP - oder besser: FTP mit Encryption: Require implicit FTP over TLS.

SNAGHTML1b4521e

FTP automatisiert

Zum Automatisieren kann ein FTP-Script erstellt werden. Ein Nachteil dabei ist, dass das FTP-Kennwort dann im Klartext in einem File gespeichert ist - also nicht sehr sicher. Aber funktionell.

Hierfür ist es empfohlen, die Deployment-Einstellungen zurückzusetzen. Das erfolgt im Dashboard der Website rechts mit dem Link Reset your deployment credentials.

image

Nun kann ein FTP Username und ein eigenes Kennwort vergeben werden.

image

Aus den Daten (im Screenshot oben rot eingerahmt) erstellen wir dann in einem Verzeichnis C:\Demo\ftpdeploy ein Kommandofile ftpdeploy.cmd und ein Scriptfile ftpdeploy.txt.

Das Kommandofile ftpdeploy.cmd sieht so aus:

ftp -v -i -s:C:\Demo\ftpdeploy\ftpdeploy.txt

Die FTP-Parameter bedeuten:
-v - Suppresses verbose display of remote server responses.
-i - Turns off interactive prompting during multiple file transfers.
-s:filename - Specifies a text file containing ftp commands; the commands will automatically run after ftp starts. No spaces are allowed in this parameter. Use this switch instead of redirection (>).

Das Scriptfile ftpdeploy.txt beinhaltet dann die eigentlichen FTP-Befehle:

open waws-prod-db3-003.ftp.azurewebsites.windows.net
miniblog2\tonipohl
MeinFTPKennwort123

pwd
cd site\wwwroot
lcd web

binary
mput *.*

mkdir bin
cd bin
mput bin\*.*
cd ..

close
quit

Die Funktionsweise: Die FTP-Site wird geöffnet, gefolgt von Username und dem Kennwort. Danach wechseln wir am Server in das wwwroot-Verzeichnis (wo das Web gespeichert wird) und am lokalen Rechner in das Unterverzeichnis web (wo unser Web-Deployment von Visual Studio liegt).

Der ganze Inhalt wird dann mit mput upgeloadet. Leider unterstützt mput keine Verzeichnisse und kann nicht rekursiv verwendet werden (Abhilfe kann ev. http://www.ncftp.com/ unter Windows mit http://cygwin.org/ mit mput -r * schaffen). Somit muss jedes Verzeichnis einzeln erstellt und kopiert werden, aber wie heisst es so schön: you get the idea. Zwinkerndes Smiley

Mit mget werden Dateien von der Website nach dem gleichen Muster heruntergeladen.

Danach wird die FTP-Verbindung geschlossen und FTP beendet.

Aufgerufen wird das Script dann mit ftpdeploy.cmd.

Diese Methode über FTP funktioniert auch gut für Webs in anderen Systemen oder Sprachen oder wo es keine Tools-Unterstützung für Azure Automation gibt.

Und natürlich gibt es noch weitere Methoden, mehr dazu in weiteren Artikeln.

Auto-Deploy

Egal welche Methode man wählt: Automatisierung hilft Fehler zu vermeiden und beschleunigt den Deployment-Prozess erheblich. So unterstützt Azure viele Varianten zur Automation und ist eine erstklassige, skalierbare Plattform für PaaS, IaaS und eigene SaaS-Lösungen.

Artikel-Serie Quicklinks: Teil 1, 2, 3, 4

Loading