How To: PowerShell on Linux

Am 18.08.2016 hat Microsoft feierlich verkündet, dass PowerShell nach nun 10-jährigem Bestehen unter Linux lauffähig und Open Source verfügbar ist.

Im ersten Moment fragt man sich vielleicht: "Heißt es nicht Windows PowerShell?!?" Tatsächlich, PowerShell wurde ursprünglich zur Automatisierung von IT-Administrationsaufgaben auf der Windows-Plattform entwickelt - ganz gleich, ob zur Automatisierung von Servern, Clients, Datenbanken und diverser anderer Technologien, die IT-Administratoren täglich begleiten.

An dieser Stelle stellt man sich vielleicht ebenso die Frage, welcher Anwendungsfall hinter PowerShell unter Linux steckt. Ganz einfach: IT-Spezialisten sollen frei wählen können, welche Technologie für welche Aufgabe eingesetzt wird. Frei nach dem Motto: Für jeden Einsatzzweck die Technologie der Wahl. Und PowerShell hat sich in den vergangenen zehn Jahren mehr als bewährt!

Diese sensationelle Ankündigung nehme ich zum Anlass für ein kurzes Tutorial, wie sich PowerShell unter einem Ubuntu-Linux schon jetzt testen lässt:

1. Ubuntu Linux auf Microsoft Azure bereitstellen

Als ersten Schritt erstelle ich eine virtuelle Maschine und bediene mich dabei der Cloud-Plattform Microsoft Azure. Mit nur wenigen Klicks kann ich mir dort einen Ubuntu-Server aus dem vorhandenen Vorlagenkatalog erstellen.

Ich beginne mit der Suche nach Ubuntu und entscheide mich für Ubuntu Server 16.04 LTS:

AzureUbuntuCreate

Anschließend wähle ich das zugehörige VM-Image aus:

AzureUbuntuCreate1

Im nächsten Schritt konfigurieren wir die virtuelle Maschine und lassen uns vom Assistenten durch die Schritte zur Erstellung der VM führen:

AzureUbuntuCreate2

Im Anschluss daran erfolgt die Bereitstellung der Maschine:

AzureUbuntuProvisioning

Innerhalb weniger Minuten erhalten wir unseren Ubuntu-Server, mit dem wir nun arbeiten können:

AzureUbuntuRunning

Die virtuelle Maschine steht bereit, jetzt verbinden wir uns auf die VM, um PowerShell installieren zu können.

2. Per SSH auf den Ubuntu-Server verbinden

Nach erfolgter Einrichtung der virtuellen Linux-Maschine wollen wir uns zum eben erstellten Ubuntu-Server verbinden. In meinem Beispiel stelle ich die Verbindung per SSH unter Windows 10 über die Bash on Ubuntu on Windows her. Das erfolgt über den Befehl

 ssh username@ip-adresse

und sieht folgendermaßen aus:

SSH Login über die Bash on Ubuntu unter Windows 10

Die Bash lässt sich unter Windows 10 als optionales Feature "Windows Subsystem for Linux (Beta)" aktivieren:

Windows 10 Feature Bash on Ubuntu

Nach einem Neustart von Windows kann die Bash verwendet werden. Alternativ kann man zum Verbinden auf das Ubuntu-System auch einen SSH-Client wie PuTTY verwenden.

3. PowerShell installieren und testen

Nach erfolreichem Verbindungsaufbau können wir mit der Installation von PowerShell fortfahren.

 # Optionaler Schritt: Ubuntu updaten/upgraden
 sudo apt-get update -y
 sudo apt-get upgrade –y

# Zwingend erforderliche Schritte:
# Dependencies installieren
 sudo apt-get install -y libunwind8 libicu55

# PowerShell-Paket laden
 wget https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

# Ausführungsrechte vergeben
 chmod +x powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

# PowerShell-Paket installieren
 sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

Nach erfolgter Installation kann die PowerShell auf unserem Ubuntu-Server über den einfachen Befehl

 powershell

in der Bash gestartet werden. Et voilà, wir nutzen PowerShell auf einem linuxbasierten Ubuntu-System:

PowerShell Version

Verfügbare Kommandos bekommen wir über

 Get-Command

PowerShell Get-Command

Aktuell verfügbare Module per

 Get-Module -ListAvailable

PowerShell Get-Module

Das ist auch schon alles, was wir benötigen, um unter Linux mit PowerShell zu experimentieren. Am Ende des Blogs habe ich noch einige Tipps zum aktuellen Status des Projekts eingefügt.

Kleiner Hinweis:
PowerShell lässt sich auch direkt im Windows Subsystem for Linux installieren (siehe oben). D.h. Sie können PowerShell für Linux auch direkt unter Windows testen und benötigen nicht unbedingt eine virtuelle Maschine unter Azure. Voraussetzung ist die Aktivierung des oben genannten Features "Windows Subsystem for Linux (Beta)" unter Windows 10.
Nichtsdestotrotz betreiben Sie vielleicht schon eigene Ubuntu-Server, auf denen Sie PowerShell evaluieren möchten. Oder aber Sie nutzen bereits Azure für den Betrieb Ihrer Infrastruktur. Und falls Sie sich einfach nur für beides interessieren, hilft Ihnen dieses Tutorial ebenfalls weiter.
  

Es geht noch weiter: PowerShell ist ab sofort Open Source!

In diesem Zuge folgt auch gleich der nächste Schritt: PowerShell ist ab sofort Open Source und der zugehörige Quellcode wurde auf GitHub veröffentlicht. Für folgende Plattformen sind PowerShell-Pakete verfügbar:

PowerShell Platforms GitHub

Alle Informationen zu den einzelnen Plattformen finden sich in der Dokumentation bei GitHub.

Was kommt in Zukunft und wo finde ich weitere Informationen?

Vielleicht abschließend noch einige Punkte zum aktuellen Status des Projekts "Open Sourced PowerShell" und PowerShell für Linux:

  • Es handelt sich bei PowerShell für Linux aktuell um eine Alpha-Version, weitere Funktionalitäten kommen sukzessive in den nächsten Monaten hinzu
  • Neben Linux ist PowerShell außerdem für Mac OS X verfügbar, alles Infos dazu gibt es auf GitHub
  • Die Alpha-Version ist Community-supported, ein offizielles Release folgt
  • Die Ankündigungen finden sich im Azure-Blog und im offiziellen PowerShell-Blog
  • In einem interessanten YouTube-Video stellen Matt McSpirit und Jeffrey Snover, der Erfinder von PowerShell, das Projekt Open Source PowerShell und PowerShell für Linux vor.

Ich wünsche viel Spaß beim Testen der PowerShell unter Linux!

Sebastian Klenk
Technical Evangelist bei Microsoft Deutschland

P.S.: Auf Twitter bin ich unterwegs als @seklenk.

Sebastian Klenk bei Twitter