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:
Anschließend wähle ich das zugehörige VM-Image aus:
Im nächsten Schritt konfigurieren wir die virtuelle Maschine und lassen uns vom Assistenten durch die Schritte zur Erstellung der VM führen:
Im Anschluss daran erfolgt die Bereitstellung der Maschine:
Innerhalb weniger Minuten erhalten wir unseren Ubuntu-Server, mit dem wir nun arbeiten können:
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:
Die Bash lässt sich unter Windows 10 als optionales Feature "Windows Subsystem for Linux (Beta)" aktivieren:
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:
Verfügbare Kommandos bekommen wir über
Get-Command
Aktuell verfügbare Module per
Get-Module -ListAvailable
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:
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.