Kategorien
Allgemein

Wie man Services auf eine moderne Art und Weise unter Linux installiert.

Dafür wird Docker benötigt. Und am besten auch ein Server, welcher richtige Last auch aushalten kann. Damit meine ich einen richtigen Server und keinen Raspberry Pi 4, weil dieser nicht genug Kraft hat, alle diese Services laufen zu lassen. Ja, natürlich ist ein Raspberry Pi 4 ein Server, jedoch nicht für Docker oder ähnliche CPU- und RAM-lastige Aufgaben, weshalb es dazu kommen kann, dass man unter Docker nen schlechteren Erfolg hat auf einen Raspberry Pi 4, als wie wenn man den Service direkt auf normaler Art und Weise mit Linux installiert. Natürlich, wie schon gesagt, zieht Docker ein bisschen von der CPU und dem RAM als Blindleistung, jedoch ist was rauskommt, hinterher viel einfacher zu warten und zu ugraden

Installieren von Docker

Um nun erstmal überhaupt zu Starten, brauchen wir Docker, da Docker einen eigenen Artikel gemacht hat, wie man dieses installiert, werde ich dazu nicht genauer ins Detail bei andereren Distributionen unter Linux gehen. Da mein Server unter Fedora läuft, werden wir Docker dafür Installieren mit den folgenden Befehlen: (Achtung, hier wird davon ausgegangen, dass ihr root seit, wenn nicht, könnt ihr Docker nicht installieren. wenn ihr sudo-Rechte habt, werdet ihr über: sudo -i root.)

dnf -y install dnf-plugins-core

Dies installiert ein programm, womit man die Repositories für DNF managen kann.

dnf config-manager \
    --add-repo \
    https://download.docker.com/linux/fedora/docker-ce.repo

Hiermit wird die Docker-Repository hinzugefügt.

dnf install docker-ce docker-ce-cli containerd.io docker-compose-plugin

Hiermit installieren wir Docker. Zusätzlich wird auch gleichzeitig das compose Plugin für Docker installiert wird, was nicht zwingend notwendig ist, aber sinnvoll zu haben

Services laufen lassen mit der Hilfe von Docker Compose

Natürlich habe ich oben gesagt, dass Docker Compose nicht zwingend notwendig ist, jedoch ist es viel einfacher und wartungsfreundlicher die Container mit Docker Compose zu verwalten. Für den Test werden wir den Service rollter von thedmdim und den Service cloud-torrent von jpillora laufen lassen.

Um unsere docker-compose.yml zu erstellen, brauchen wir jedoch jetzt einen Ordner, ich würde empfehlen, diesen unter dem / Verzeichniss zu erstellen, also: /docker. Diesen zu erstellen geht relativ einfach: sudo -i, mkdir /docker und cd /docker.

Nun erstellen wir unsere docker-compose.yml mit Vim, weil vim gleich Syntax-Highlithing hat, und zu dem die Tabs für yaml richtig formatiert. (Wichtig: Vim beendet man mit :q! und speicher und beenden tut man mit: :wq) Folgender Befehl für vim: vim docker-compose.yml

Nun fügen wir folgendes für den Test ein:

version: '3.9'
services:
    rollter:
        container_name: rollter
        environment:
            - VPN_IPSEC_PSK=your_ipsec_pre_shared_key
            - VPN_USER=your_vpn_username
            - VPN_PASSWORD=your_vpn_password
        ports:
            - '500:500/udp'
            - '4500:4500/udp'
        privileged: false
        image: thedmdim/rollter

    cloud-torrent:
        ports:
            - '3000:3000'
        volumes:
            - '/docker/torrents/downloads:/downloads'
        image: jpillora/cloud-torrent
Leere docker-compose.yml
docker-compose.yml im Fertigen Format

Damit unsere Services jetzt nun final noch laufen, machen wir folgendes: docker compose up -d (wichtig: Damit dies funktioniert muss es als root im /docker ausgeführt werden)

Die Ausgabe sollte, dann ungefähr so aussehen:

Docker compose ausgabe, wichtig: kann variieren.

Testen zum Schluss

Nun werden wir nur noch testen, ob alle Services laufen, dafür navigieren wir im unserem Internet-Browser unserer Wahl einfach zu der IP des Servers auf Port 3000. Ein Beispiel wäre: http://192.168.1.114:3000/
Nun müssten wir dieses Bild sehen und dann hat alles funktioniert.

Kategorien
Allgemein

Win-Test mit Wine unter Linux

Wer kennt das nicht? Das Notebook mit Windows 95, schafft es noch locker als Log-Rechner für Conteste und andere einfache Aufgaben. Trotzdem sollte man nicht auf ein so altes Betriebssystem setzen, weil diesem jegliche Sicherheitspatchs fehlen. Internet-Zugriff wird dann zum Sicherheitsrisiko. Für ein neueres Windows-Betriebssystem fehlen die jedoch Voraussetzungen und die Microsoft Zwangsregistrierung ist auch nicht jedermanns Sache. Das ist dann eine typische Sache für eine schlanke Linux-Distribution wie z.B. die Ubuntu-Abart Xubuntu, die gut auf alten Rechnern läuft.

Win-Test ist eine sehr leistungsfähige und unter den „Profi-Contestern“ beliebte Contest-Log-Software für Amateurfunk-Wettkämpfe. Sie ist keine Freeware, sondern kostet etwas, um die Weiterentwicklung zu sichern. Aber Geld, dass gut angelegt ist. Unter Linux gibt es leider nichts wirklich vergleichbares.

Ich möchte deswegen gerne hiermit eine kleine Anleitung schreiben, wie man Win-Test mit Wine (Windows-Emulator von Linux) unter Linux inklusive Schnittstellen für serielle oder USB-Geräte zum Laufen bekommt. Dafür gehe ich in dieser Anleitung spezifisch auf 3 Linux-„Distros“(Distributionen) ein. Zu den 3 „Distros“ gehört Debian, Ubuntu und Arch Linux.

Folgende Voraussetzungen werden benötigt:

  • eine der aufgelisteten Distros ist installiert und betriebsbereit
  • man weiß wie man einen Webbrowser bedient
  • man weiß wie man Text ins Terminal kopiert
  • Zeit
  • Verstand

Als erstes müssen wir uns Win-Test herunterladen: http://www.win-test.com/rubrique.php3?id_rubrique=2750. Dafür wählen wir uns auf dieser Seite eines der passenden Produkte aus.

Danach öffnet man sein Terminal und gibt dann je nachdem welche Distro man hat, einen der folgenden Befehle ein:

Debian und Ubuntu:

sudo apt install wine

Arch Linux:

sudo pacman -S wine

sollte dies erledigt sein, wechselt man nun in den Ordner wo die Datei liegt:

cd <Hier Ordner>

standardmäßig sollte dies der Downloads Ordner sein, deswegen hier nocheinmal für diesen Ordner:

cd ~/Dowloads

nun führen wir Win-Test einmal aus. dafür geben wir:

wine <wintestdatei.exe>

ins Terminal ein und klicken dann bei allen Fenstern auf „installieren“ (<wintestdatei.exe> ist natürlich ein Platzhalter und durch den entsprechenden Namen zu ersetzen). Wobei wir uns dann einfach durch das Setup „durchklicken“. Wenn alles gut geht, sollten wir jetzt Win-Test im „Startmenü“ unserer Distro finden. Wenn wir nun Win-Test ausführen, sollte eigentlich alles bis auf Audio und Schnittstellen gehen. Zu dem Audio kommt später nochmal ein Blogeintrag.

Win-Test laufend unter Linux

Einer der Knackpunkte ist jetzt aber noch, die Schnittstellen für die Fernsteuerung unseres Transceivers anzupassen. Wie bekommen wir nun die Windows-typischen COM-Ports zu den am Linux verfügbaren Schnittstellen?

Zunächst müssen wir dafür wissen:

  • wie heißen die Schnittstellen unter Linux (/dev/tty……)
  • auf welchen COM-Port wir die Schnittstellen legen wollen.
  • unseren Unix-Nutzernamen

Wenn wir diese Voraussetzungen erfüllt haben, machen wir dann folgende Schritte:

sudo usermod -aG dialout <nutzername>
cd ~/.wine/dosdevices/

und dann

ls
alle COM-Ports aufgelistet

und dann sollten wir alle vorhanden COM-Ports sehen. Falls nicht, ist dies auch nicht schlimm, wir ordnen diese jetzt so zu, wie wir sie brauchen. Auf jeden Fall sollten wir wissen, dass Win-Test nur COM-Port 1-12 kann, aber Wine mehr zuordnet. Wichtig ist, dass wenn man die COM-Ports ändert, bei einem neuem Start von Win-Test nochmal wieder neu zuordnen muss.

Um einen COM-Port zu entfernen, der anders belegt und benötigt wird, gibt man nun:

rm com<nummer>

ein. Dannach schaut man sich den Namen seines Linux-Ports an.

ls /dev/tty*

Feste Schnittstellen am Rechner lauten in der Regel /dev/ttyS0, ..S1 etc. Com-Ports über USB-Wandler heißen /dev/ttyUSB0, …USB1, … und manche exotischeren Geräte benutzen /dev/ttyACM0…

Nun nimmt man sich den Namen des Linux-Gerätes und den COM-Port und setzt sie hier ein (in meinem Beispiel: /dev/ttyUSB0 und COM12).

ln -s /dev/ttyUSB0 com12
(ln -s <Linux-Schnittstelle> com<COM-PORT-Nummer>)

Der Linux-Mensch nennt dieses einen symbolischen Link setzen. Das wiederholen wir für alle benötigten Ports.

Viel Spaß dabei, auch Win-Test unter Linux laufen zu lassen.

Eine umfangreichere Anleitung in Englisch Version findet sich im Wintest-Wiki: hier

Hinweis zum Schluß: DXLog.net ist eine sehr ähnliche Software mit nahezu identischer Oberfläche und Bedienphilisophie. Bei dieser habe ich es aber nicht hinbekommen, sie unter Wine zum Laufen zu bringen. Es kommt hier zu Grafikfehlern. Der Fensterinhalt wird nicht automatisch aktualisiert.

Hier ist der originale Blog-Beitrag: https://www.dk0tui.de/2021/09/win-test-mit-wine-unter-linux/

Noch eine Ergänzung: DXLog.net läuft zwar manchmal unter Wine mit einer bestimmen Distribution, jedoch ist die Wahrscheinlichkeit, dass man dieses findet so selten, dass man es eigentlich aufgeben kann.