
Ursprünglich veröffentlicht auf LinkedIn am 2020-01-06.
Hallo zusammen, wie einige von euch wissen, habe ich im letzten Jahr eine neue Herausforderung angenommen und arbeite jetzt in der IT-Abteilung eines großen Gesundheitsunternehmens. In den letzten Jahren habe ich viel Erfahrung gesammelt, wie man Automatisierungstools in einer homogenen Linux-Infrastruktur einsetzt. In meinem neuen Job sind die Dinge anders.
In der Vergangenheit habe ich nie daran gedacht, Powershell zu verwenden, weil es unter Linux tonnenweise wirklich gute Tools zur Konfiguration und Bereitstellung gibt. Wie Terraform, Chef, Ansible und so weiter…
Also habe ich jetzt einen Windows-Arbeitsplatzrechner … was ein Albtraum für mich ist. In den letzten 15 Jahren habe ich keinen Windows-PC mehr angefasst. Ja, ich unterstütze auch nur Linux-PCs beim “Familien-Support-Abo”. Also ist ein Windows-PC für mich wirklich eine Herausforderung.
Also, was habe ich zuerst gemacht? Ja, das BIOS gehackt und WSL installiert, was für einige Ansible-Skripting für das Rollout der neuen Performance-Überwachungstools innerhalb unserer Abteilung schön ist (ich mag Prometheus und Grafana wirklich), aber das ist eine andere Geschichte. Aber es ist WSL1 und es ist keine Windows-Tooling. Also hatte ich das “Glück”, einige Powershell-Schulungen zu erhalten, was schön ist. Aber es ist wie mit einem Führerschein: Man denkt, man ist ein 18-jähriger Formel1-Fahrer, aber in Wirklichkeit habe ich gerade erst gelernt, wie man das Auto fährt.
Das Gute ist, dass ich Erfahrung mit anderen Automatisierungstools habe, also habe ich mich umgeschaut, was es da gibt. Und ich bin über einige Tools gestolpert und versuche jetzt, einen Entwicklungs-Stack für Powershell innerhalb unserer Abteilung aufzubauen. Warum? Wir haben einige Speichersysteme, bei denen einige APIs verfügbar sind, aber niemand hat damit gearbeitet. Und es gibt keine native Powershell-CLI von diesem Anbieter. Und die gesamte Automatisierung sollte innerhalb des Unternehmens mit Powershell durchgeführt werden. Das ist der Grund.
DevOps-Umgebung#
Also habe ich ein bisschen recherchiert, was es gibt, und bin über diese Projekte gestolpert.
- Vorlagen können mit Plaster erstellt werden
- Für die Versionierung bevorzugte ich die Verwendung von GitLab-CE
- Testen: Wie ich herausgefunden habe, ist Pester das gängige Tool dafür
- Die Dokumentationsstruktur kann innerhalb des Git-Repositorys mit Plaster erstellt werden
- Eine schöne Benutzeroberfläche für meine Kollegen ist Visual Studio Code
- Build-Automatisierung mit psake
- Bereitstellung? Das ist ein offener Punkt im Moment. Es gibt Optionen wie ein privater NuGet-Server, aber ich bin mir noch nicht sicher, ob das das ist, was ich haben möchte. Auf der anderen Seite gibt es GitLab, das ein sehr leistungsstarkes Tool ist, wenn es um CI/CD geht.
Plaster#
Für mich ist es wirklich wichtig, einige Struktur in den Modulen zu bekommen, die von unserem Team erstellt werden. Es ist ein gewisser Aufwand, ein Tool zu verwenden und Vorlagen zu erstellen, aber am Ende lohnt es sich. Denn die Leute gewöhnen sich daran, die Strukturen zu verwenden, die wir innerhalb des Teams definieren. Und wenn sie mit Vorlagen erstellt werden, verbessern sich die Vorlagen im Laufe der Zeit. Auch wenn neue Teammitglieder hinzukommen, ist es einfacher zu verstehen, was vor sich geht. Es ist auch einfacher, die Module in kleinere Module aufzuteilen, während überall die gleichen Strukturen vorhanden sind. Ich denke, der einfachste Weg, Plaster zu verstehen, ist dieses Video auf YouTube.
Arbeiten mit Plaster (ein PowerShell-Scaffolding-Modul)
Vielleicht finde ich etwas Zeit, um mehr Artikel zu diesem Thema zu schreiben. Aber lasst uns das sehen. Wenn jemand einige Hinweise für mich hat, sind Sie willkommen, einen Kommentar zu hinterlassen.
