Ausprobieren auf einer frisch installierten Plattform

Na gut,

wir haben auf den letzten Seiten erfahren, wie man Code in C# schreibt, diesen kompiliert als eine native Executable für eine spezifische Plattform, das Ganze über eine CI/CD-Platform baut und deployt (bereitstellt) und am Beispiel Linux (Debian / Ubuntu) hieraus ein installierbares Paket erstellt.

Jetzt wollen wir das natürlich auch mal an einem System ausprobieren, ob das auch so funktioniert wir erwartet.

Für diesen Test habe ich mir eine VM mittels KVM aufgesetzt.

In dieser VM habe ich Ubuntu Server 22.04 LTS installiert. Der Zugriff auf dieses System erfolgt mittels SSH (was natürlich im Vorfeld auf dem Server aktiviert wurde).

Im Screenshot ist zu sehen, dass ein x86_64 System vorhanden ist. Dies ist für die Auswahl des geeigneten Pakets wichtig.

Zufällig haben wir ja im Schritt vorher, ein Debian-Paket von pingcs gebaut. Dies sollte für einen Test auf dem System ausreichen.

Nur zur Sicherheit, wie prüfen ob auch wirklich kein Dotnet installiert ist:

 

Na, zum Glück nicht. Und auch pingcs ist auf dem neuen System nicht vorhanden.

Und auch im Home-Verzeichnis befindet sich nichts verdächtiges.

Da ich das Debian-Paket nicht in irgendeiner Paketquelle bereitgestellt habe, sondern als Artefakt im Deploy-Prozess, müssen wir das Paket (in unserem Fall) über die Gitlab-Gui herunterladen und per scp auf dieses System kopieren.

Dafür schauen wir erst mal in welchem Home-Verzeichnis wir uns befinden.

Jetzt laden wir, das aktuelle Paket für unsere Zwecke über die Gitlab-Gui herunter…

Nach dem entpacken (in meinem Falle nach c:\temp) finden wir dort das Debian-Paket.

Mittels scp (Secure Copy) oder rsync (Remote Sync) kopieren wir jetzt das Paket auf das Zielsystem.

Ich verwende scp, über Einzelheiten der Verwendung von scp berichte ich hier nicht, da gibt es bessere Anleitungen.

Nunja, jetzt sollte sich das Debian-Paket im Home-Verzeichnis auf dem Ubuntu-Server befinden.

Perfekt, hat funktioniert.

Jetzt sollten wir das Tool mit Ubuntu-Board-Mitteln einfach so installieren können.

Na schau an, hat funktioniert.

Da wir ja im vorigen Kapitel alle notwendigen Schritte in das Debian-Paket gepackt haben um das Programm einfach so ausführen zu können, probieren wir das einfach mal aus!

Zuerst mal was einfaches und schauen ob das überhaupt einfach so funktioniert:

Krass! Das funktioniert einfach so. Schauen wir uns erst mal das Dateiformat an.

Und jetzt noch die Executable checken…

Nicht schlecht! Jetzt schauen wir nur noch nach ob sich das Programm auch ohne sudo-Rechte ausführen lässt.

Hier werden wir mal die Domäne heise.de 12 mal kontaktieren mit einem Abstand von 250ms zwischen jeder Messung im Format IpV4.

Also los…

Joa sackra! Das funktioniert!

Sogar mit der korrekten Hostauflösung. Wir sehen dass heise.de aufgelöst wird nach redirector.heise.de.

Na wunderbar.

That´s it!

Wir können hier wunderbar sehen, dass die Erstellung von nativen Anwendungen mit den geeigneten Mitteln ist möglich ist. Diese Anwendung lässt sich auf einem entsprechenden Zielsystem ohne Weiteres ausführen.

Ob das für einen produktiven Einsatz sinnvoll ist? Warum nicht!

Schlussendlich zeigt sich, dass man mit dem geeigneten Toolset Sachen bauen kann, die nativ erst mal nicht dafür gedacht sind. Gerade in containerisierten Umgebungen ist es vielleicht hilfreich einen Standard-Linux-Container zu nehmen, die Anwendung dort hinein zu kopieren und die Anwendung im Container zu starten. Keine Framework-Installation notwendig, läuft einfach so.