Schritt 7: Den Agenten auf das Gateway bringen¶
Auf einem Laborgateway getestet, nicht auf einem Yocto-Image
Die Schritte 7 und 8 beruhen auf Testläufen auf einem Laborgateway mit dem
signierten Release cproto-v0.2.0-rc.2, von Hand installiert. Auf einem
Image, das mit dem Yocto-Rezept gebaut ist, sind sie nicht gelaufen.
Wozu dieser Schritt
Das Gateway braucht ein kleines Programm, den Bootstrap-Agent, um mit der Plattform zu sprechen. Er läuft als ein Dienst, weist die Identität des Gateways mit seinem TPM nach, holt die Einstellungen aus Ihrem Template, speichert sie und meldet sich regelmäßig, standardmäßig einmal pro Stunde. Ihre eigene Gateway-Software startet Ihr Image, nicht der Agent.
Das brauchen Sie
- Den Agenten auf dem Gateway, auf einem von zwei Wegen: in Ihrem Gateway-Image, siehe Mit Yocto und RAUC installieren (für Gateways in Serie), oder von Hand auf einem einzelnen Gateway installiert, siehe Manuell auf einem Gateway installieren. Beide Seiten zeigen, wie Sie den Download prüfen.
- Eine Kommandozeile auf dem Gateway als Administrator (root), per SSH oder direkt am Gerät.
- Die Plattformadresse für Gateways, von Ihrem Support-Kontakt.
So geht's
Alle Befehle laufen auf dem Gateway, als root.
-
Sagen Sie dem Agenten, wo die Plattform ist. Das legt eine kleine Einstellungsdatei an:
cat > /etc/bootstrap-agent/agent.env <<'EOF' BOOTSTRAP_AGENT_URL=https://bootstrap.ztd.dev.pxdc.io BOOTSTRAP_AGENT_TRUST_BUNDLE= EOFLassen Sie
BOOTSTRAP_AGENT_TRUST_BUNDLE=leer, außer der Support hat Ihnen eine Datei gegeben, siehe Einstellungen. -
Starten Sie den Agenten neu, damit er die Datei liest:
-
Sorgen Sie dafür, dass Ihr Image Ihre Gateway-Software startet, sobald die Konfiguration gespeichert ist, und die Bestätigungsmarkierung schreibt, sobald sie verbunden ist. Beides steht unter Software starten und bestätigen.
Das sollten Sie sehen
Den laufenden Dienst und den Zustand des Agenten:
systemctl is-active bootstrap-agent.service
curl -s --unix-socket /run/bootstrap-agent/api.sock http://localhost/v1/status
Der erste Befehl gibt active aus. Im zweiten ist "state" gleich
no_config, solange die Plattform das Gateway noch nicht eingerichtet hat, und
ready, sobald sie es getan hat.
Falls nicht
Ist state gleich error, liegt der Fehler auf dem Gateway selbst: eine
fehlende Adresse, das TPM oder der Speicher. Lesen Sie das Log mit
journalctl -u bootstrap-agent.service -n 50 und siehe
Fehlerbehebung.