Eigenen Server oder eigene VM verbinden
Du kannst einem Agenten deinen eigenen Linux-Server oder deine eigene VM als endue Computer geben. Du führst auf dem Rechner einen Installationsbefehl aus, und ab dann liegen die Dateien und Programme des Agenten dort.
Wann sich ein eigener Server lohnt
Abschnitt betitelt „Wann sich ein eigener Server lohnt“Nutze deinen eigenen Server, wenn die Arbeit etwas braucht, das nur dieser Rechner hat: Zugang zu deinem internen Netzwerk, bereits installierte Tools und Daten, mehr CPU oder Speicherplatz als standardmäßig oder einen Rechner in einer Region deiner Wahl. Jeder Linux-Rechner unter deiner Kontrolle funktioniert, etwa ein VPS bei Vultr, eine EC2-Instanz auf AWS oder ein Server im eigenen Rechenzentrum.
Trifft nichts davon zu, brauchst du diese Seite nicht. Ein Agent bekommt automatisch einen endue Computer in der endue Cloud, sobald er zum ersten Mal einen braucht. Siehe Geräte.
Was du brauchst
Abschnitt betitelt „Was du brauchst“- Linux auf x86_64 oder aarch64. Das Programm ist eine einzelne statische Binärdatei, die Distribution spielt also keine Rolle.
- systemd.
- Root-Zugriff über
sudo. - Ausgehender Internetzugang. endue Computer baut die Verbindung zu endue selbst über einen sicheren WebSocket auf, du musst also keinen eingehenden Port öffnen.
Installation
Abschnitt betitelt „Installation“-
Öffne Ressourcen › Geräte über die linke Seitenleiste und wähle in der Gruppe endue Computer Auf eigenem Gerät oder Server installieren.
Auf der Seite eines Agenten im Agent Builder macht Ressourcen › Geräte › Eigenen Server verbinden dasselbe für diesen Agenten.
-
Wähle den Agenten und optional einen Gerätenamen für die Liste (zum Beispiel
build-server-01). Wähle Installationsbefehl erstellen.Hat der Agent bereits einen endue Computer in der endue Cloud, wirst du gefragt, ob du ihn samt Dateien zuerst löschen willst. Brichst du ab, ändert sich nichts. Siehe Den endue Computer eines Agenten in der endue Cloud ersetzen.
-
Kopiere den Befehl und führe ihn auf deinem Server aus. Er sieht so aus:
Terminal-Fenster curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \--endpoint <endpoint> --token <token> --instance <agent-id>Der Befehl enthält ein Verbindungstoken für diesen Agenten und wird nur einmal angezeigt. Schließt du das Fenster, bevor du ihn kopiert hast, erstelle einen neuen Befehl.
-
Warte auf „Verbunden“. Einige Sekunden nachdem der Befehl durchgelaufen ist, wechseln der Dialog und die Geräteliste zu Verbunden.
Was das Installationsskript macht
Abschnitt betitelt „Was das Installationsskript macht“-
Erkennt die Architektur, lädt endue Computer herunter und prüft die SHA-256-Prüfsumme. Stimmt die Prüfsumme nicht, installiert es nichts.
-
Prüft, welches Profil dein Kernel unterstützt.
-
Legt einen Systembenutzer namens
enduean, der sich nicht anmelden kann. -
Legt für den Agenten Folgendes an:
Pfad Eigentümer und Rechte Inhalt /etc/endue-computer/<agent-id>.envroot, 0600Die Verbindungsadresse, das Token und die Einstellungen, die du gewählt hast /var/lib/endue-computer/<agent-id>/workspaceendueDer Arbeitsbereich des Agenten: der Ordner, in dem er arbeitet /var/lib/endue-computer/<agent-id>/stateendueCheckpoints und gespeicherte Dateien, außerhalb des Arbeitsbereichs -
Aktiviert und startet einen systemd-Dienst für den Agenten,
endue-computer@<agent-id>, und meldet, ob die Verbindung steht.
Festlegen, was der Agent darf
Abschnitt betitelt „Festlegen, was der Agent darf“Häng Optionen an das Ende des Installationsbefehls an:
curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \ --endpoint <endpoint> --token <token> --instance <agent-id> \ --allow-exec git,python3 --no-network| Option | Standard | Wirkung |
|---|---|---|
--allow-exec <list> | git,node,npm,npx,python3,pip3,curl | Die Programme, die der Agent ausführen darf, kommagetrennt und ohne Pfade. --allow-exec "" schaltet das Ausführen von Programmen komplett ab. |
--no-network | Netzwerk erlaubt | Programme, die der Agent ausführt, können das Netzwerk nicht nutzen. |
--no-delete | Löschen erlaubt | Der Agent kann keine Dateien in seinem Arbeitsbereich löschen. Tools wie git und npm löschen Lock- und temporäre Dateien und schlagen deshalb mit dem Profil sandboxed fehl. |
--profile auto|sandboxed|managed | auto | Welches Profil verwendet wird. |
Ein Programm auf der Liste, das auf dem Server nicht installiert ist, wird bei der Installation gemeldet. Versucht der Agent, es auszuführen, bekommt er „nicht installiert“ zurück.
Ein erlaubtes Programm begrenzt nicht, was dieses Programm tut. Erlaubst du node oder python3, kann der Agent innerhalb der Grenzen des Profils jeden Code ausführen, den diese Programme ausführen können.
Profile
Abschnitt betitelt „Profile“| Profil | Voraussetzung | Was vom Agenten gestartete Programme nicht können |
|---|---|---|
sandboxed | Linux 6.12 oder neuer (Landlock ABI 6) | Dateien außerhalb des Arbeitsbereichsordners lesen oder schreiben. Alles unter managed gilt ebenfalls. |
managed | Jeder andere Kernel, etwa Ubuntu 22.04 (5.15) oder der GA-Kernel von Ubuntu 24.04 (6.8) | Root werden oder zusätzliche Rechte erlangen. systemd blendet /home, /root und die Ordner anderer Agenten aus und macht den Rest des Systems schreibgeschützt. Eine Dateisystem-Sandbox gibt es nicht: Programme können jede Datei lesen, die der Benutzer endue lesen kann. |
auto wählt sandboxed, wenn der Kernel es unterstützt, und weicht sonst mit einem Hinweis auf managed aus. Verlangst du sandboxed auf einem Kernel, der es nicht unterstützt, bricht das Installationsskript ab, ohne etwas zu installieren. Nutze managed nur auf einem Server oder einer VM, die nur für den Agenten da ist.
Einen weiteren Agenten auf demselben Server hinzufügen
Abschnitt betitelt „Einen weiteren Agenten auf demselben Server hinzufügen“Ein Server kann mehrere Agenten bedienen. Öffne unter Ressourcen › Geräte das Menü in der Zeile des Servers, wähle Agent hinzufügen, such den Agenten aus und führe den neuen Befehl auf demselben Server aus.
Jeder Agent bekommt einen eigenen Dienst, eine eigene Einstellungsdatei und eigene Ordner. Das Programm und der Benutzer endue werden gemeinsam genutzt. Beim Profil managed sorgt systemd dafür, dass kein Agent in die Ordner der anderen gelangt.
Starten, Stoppen und Logs
Abschnitt betitelt „Starten, Stoppen und Logs“Ersetze <agent-id> durch den Wert nach --instance in deinem Befehl.
sudo systemctl status endue-computer@<agent-id> # läuft der Dienst?sudo systemctl start endue-computer@<agent-id> # startensudo systemctl stop endue-computer@<agent-id> # stoppensudo journalctl -u endue-computer@<agent-id> -f # Log mitverfolgenSolange der Dienst gestoppt ist, wird das Gerät als Aus angezeigt, und der Agent bittet dich, ihn zu starten. endue erstellt ersatzweise keinen Cloud-Computer.
Neu installieren
Abschnitt betitelt „Neu installieren“Führst du einen Installationsbefehl mit demselben --instance erneut aus, werden die Einstellungen einschließlich des Tokens ersetzt und der Dienst neu gestartet.
Solange der Server des Agenten verbunden ist, kannst du keinen neuen Befehl erstellen. Stoppe zuerst den Dienst auf dem Server und erstelle den Befehl dann erneut.
Deinstallieren
Abschnitt betitelt „Deinstallieren“curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \ --uninstall --instance <agent-id>Damit wird der Dienst des Agenten gestoppt und deaktiviert und seine Einstellungsdatei gelöscht. Der Arbeitsbereich und der state-Ordner bleiben erhalten, außer du ergänzt --purge. Ohne --instance werden alle Agenten auf dem Server entfernt. Ist kein Agent mehr übrig, werden auch das Programm und die Dienstdefinition entfernt.
Die Deinstallation auf dem Server entfernt das Gerät nicht aus endue, und das Entfernen in endue deinstalliert nichts auf dem Server. Mach beides: hier deinstallieren und im Zeilenmenü des Geräts beim Agenten Entfernen wählen. Siehe Ein Gerät entfernen.
Einschränkungen
Abschnitt betitelt „Einschränkungen“- Nur Linux auf x86_64 oder aarch64. Versionen für macOS und Windows gibt es noch nicht.
- Ein endue Computer pro Agent. Ein Agent auf deinem Server kann nicht zusätzlich einen in der endue Cloud haben, und ein Agent, der schon auf einem anderen Server ist, muss dort zuerst entfernt werden.
- endue kann weder deinen Server noch den Dienst starten. Ist einer von beiden nicht erreichbar, arbeitet der Agent ohne ihn.
- Der Agent kann Tools auf dem Server nur nutzen, solange der Dienst verbunden ist. Programme, die er im Hintergrund gestartet hat, enden, wenn der Dienst stoppt.
- Ohne systemd, etwa in manchen Containern, ergänze
--no-systemd. Das Installationsskript legt dann die Dateien ab und gibt den Befehl aus, mit dem du endue Computer selbst startest. Die oben beschriebenen Schutzmaßnahmen von systemd gelten in diesem Fall nicht. - Startet der Dienst nicht und meldet
status=226/NAMESPACE, kann der Rechner keine Mount-Namespaces anlegen. Das kommt in manchen LXC- und OpenVZ-Containern vor. Nutze eine vollständige VM oder--no-systemd.