Die Verbindung zum Zielgerät schlägt fehl
Voraussetzungen
Der SSH-Server auf dem Zielgerät ist in Betrieb und läuft auf einem bekannten Port (beispielsweise 22).
Die richtige IP-Adresse des Zielgeräts ist bekannt. Das Zielgerät kann über die IP-Adresse angepingt werden.
Fehlerbehebung
Tipp
Andere Probleme wie ein langsames Netzwerk oder ein Netzwerkfehler können ebenfalls eine Unterbrechung der Verbindung verursachen.
Nach der Verbindung zum Zielgerät liest das Deploy Tool einige Systemparameter aus, um zu ermitteln, welche Packages und Funktionen verfügbar sind. Dabei werden folgende Aspekte des Zielgeräts überprüft:
Userland-Architekturen
Das Deploy Tool ermittelt die verfügbaren Loader auf dem Zielgerät. Die verfügbaren Loader bestimmen, welche Binärdateien ausgeführt werden können. Dazu führt das Deploy Tool folgenden Befehl aus:
ls -la /lib*/ld-linux*
Wenn die Ausgabe einen der folgenden Werte enthält, gilt die jeweilige Architektur als verfügbar: x86-64, i386, x32, armhf, aarch64
Bei Version 4.14.0.0:
Wurde keiner dieser Werte gefunden, wird die Verbindung unterbrochen.
Ab Version 4.15.0.0:
Wenn keiner dieser Werte gefunden wurde, gibt das Deploy Tool eine Logmeldung aus, dass keine Userland-Architektur gefunden wurde. Danach werden nachfolgende Paramenter geprüft. Dies sollte jedoch nicht zu einer Unterbrechung der Verbindung führen.
Gerätearchitektur
Das Deploy Tool prüft, welche CPU auf dem Zielgerät vorhanden ist. Dazu führt das Deploy Tool die folgenden Befehle aus:
lscpu | grep ^Architecture:
Wenn die Ausgabe einen der folgenden Werte enthält, wird die entsprechende Architektur verwendet: x86_64, i686, aarch64, armv7l, armv6l
Wenn die Ausgabe keinen dieser Werte enthält, wird der Befehl
cat /proc/cpuinfo | grep '^model name'
ausgeführt.cat /proc/cpuinfo | grep '^model name'
Wenn die Ausgabe einen der folgenden Werte enthält, wird die entsprechende Architektur verwendet: x86_64, i686, aarch64, armv7l, armv6l
Wenn die Ausgabe keinen dieser Werte enthält , wird eine Logmeldung ausgegeben.
Container-Engine
Das Deploy Tool prüft, welche Container-Engines auf dem Zielgerät verfügbar sind. Dazu führt das Deploy Tool folgende Befehle aus:
which docker
Wenn der Exit-Codes 0 ist, wird Docker als Engine erkannt.
which podman
Wenn der Exit-Codes 0 ist, wird Podman als Engine erkannt.
Hinweis
Der gleichzeitige Einsatz von zwei Container-Engines ist nicht getestet und wird nicht vollständig unterstützt. Dies könnte deshalb zu Problemen führen.
Container-Architektur
Das Deploy Tool prüft, welche Architekturen die Container-Engine ausführen kann. Dazu führt das Deploy Tool, abhängig von der ermittelten Engine, folgenden Befehl aus:
docker info
Wenn die Ausgabe
Architecture:
einen der folgenden Werte enthält, wird die entsprechende Architektur verwendet: x86_64, aarch64, armv7l, armv6lWenn keiner dieser Werte gefunden wird, wird eine Logmeldung ausgegeben.
podman info
Wenn die Ausgabe
arch:
einen der folgenden Werte enthält, wird die entsprechende Architektur verwendet: amd64, aarch64, armv7l, armv6lWenn keiner dieser Werte gefunden wird, wird eine Logmeldung ausgegeben.
Init-Prozess
Das Deploy Tool prüft, welche Init-Prozesse auf dem Zielgerät verfügbar sind. Dazu führt das Deploy Tool folgende Befehle aus:
systemctl > /dev/null 2>&1 ; echo $?
Wenn der Exit-Code 0 ist und die Ausgabe 0 enthält, dann wird
systemd
als verfügbarer Init-Prozess erkannt.ls /etc/init.d > /dev/null 2>&1 ; echo $?
Wenn der Exit-Code 0 ist und die Ausgabe 0 enthält, dann wird
initd
als verfügbarer Init-Prozess erkannt.
Package Manager
Das Deploy Tool prüft, welche Packagemanager auf dem Zielgerät verfügbar sind. Dazu führt das Deploy Tool folgende Befehle aus:
which dpkg > /dev/null 2>&1; echo $?
Wenn der Exit-Code 0 ist und die Ausgabe 0 enthält, dann wird
dpkg
als verfügbarer Package Manager registriert.which ipkg > /dev/null 2>&1; echo $?
Wenn der Exit-Code 0 ist und die Ausgabe 0 enthält, dann wird
ipkg
als verfügbarer Package Manager registriert.which opkg > /dev/null 2>1; echo $?
Wenn der Exit-Code 0 ist und die Ausgabe 0 enthält, dann wird
opkg
als verfügbarer Package Manager registriert.Ab Version 4.15:
which rpm > /dev/null 2>1; echo $?
Wenn der Exit-Code 0 ist und die Ausgabe 0 enthält, dann wird
rpm
als verfügbarer Package Manager registriert.
Hinweis
Wenn ein Produkt und Ihr System dpkg
und ipkg
oder opkg
unterstützen, wird dpkg
verwendet.
Python
Das Deploy Tool prüft, ob Python auf Ihrem Ziel verfügbar ist. Dazu führt das Deploy Tool folgenden Befehl aus:
python3 -v
Wenn der Exit-Code 0 und die Version größer-gleich als 3.9 ist, wird Python als installiert erkannt.