Aller au contenu

Connecter votre propre serveur ou VM

Afficher en Markdown

Vous pouvez confier à un agent votre propre serveur ou VM Linux comme endue Computer. Vous exécutez une seule commande d’installation sur la machine, et dès lors les fichiers et les programmes de l’agent s’y trouvent.

Utilisez votre propre serveur quand le travail a besoin de quelque chose que seule cette machine possède : l’accès à votre réseau interne, des outils et des données déjà installés, plus de CPU ou de disque que la configuration par défaut, ou une machine dans la région de votre choix. N’importe quelle machine Linux que vous contrôlez fait l’affaire, comme un VPS chez Vultr, une instance EC2 sur AWS ou un serveur sur site.

Si rien de tout cela ne vous concerne, vous n’avez pas besoin de cette page. Un agent reçoit automatiquement un endue Computer sur le cloud endue la première fois qu’il en a besoin. Voir Appareils.

  • Linux sur x86_64 ou aarch64. Le programme est un binaire statique unique, la distribution n’a donc pas d’importance.
  • systemd.
  • Un accès root via sudo.
  • Un accès Internet sortant. endue Computer se connecte vers endue par un WebSocket sécurisé : vous n’avez aucun port entrant à ouvrir.
  1. Ouvrez Ressources › Appareils depuis la barre latérale gauche et sélectionnez Installer sur mon appareil ou serveur dans le groupe endue Computer.

    Depuis la page d’un agent dans Agent Builder, Ressources › Appareils › Connecter mon serveur fait la même chose pour cet agent.

  2. Choisissez l’agent et, si vous le souhaitez, un nom d’appareil pour la liste (par exemple build-server-01). Sélectionnez Créer la commande d’installation.

    Si l’agent dispose déjà d’un endue Computer sur le cloud endue, on vous demande d’abord s’il faut le supprimer, avec ses fichiers. Si vous annulez, rien ne change. Voir Remplacer l’endue Computer d’un agent sur le cloud endue.

  3. Copiez la commande et exécutez-la sur votre serveur. Elle ressemble à ceci :

    Fenêtre de terminal
    curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \
    --endpoint <endpoint> --token <token> --instance <agent-id>

    La commande contient un jeton de connexion propre à cet agent. Elle ne s’affiche qu’une fois. Si vous fermez la fenêtre avant de la copier, créez une nouvelle commande.

  4. Attendez l’état Connecté. La boîte de dialogue et la liste des appareils passent à Connecté quelques secondes après la fin de la commande.

  1. Il détecte l’architecture, télécharge endue Computer et vérifie sa somme de contrôle SHA-256. Si la somme ne correspond pas, il n’installe rien.

  2. Il vérifie quel profil votre noyau prend en charge.

  3. Il crée un utilisateur système nommé endue, qui ne peut pas ouvrir de session.

  4. Il crée, pour l’agent :

    CheminPropriétaire et modeContenu
    /etc/endue-computer/<agent-id>.envroot, 0600L’adresse de connexion, le jeton et les paramètres que vous avez choisis
    /var/lib/endue-computer/<agent-id>/workspaceendueL’espace de travail de l’agent : le dossier dans lequel il travaille
    /var/lib/endue-computer/<agent-id>/stateendueLes points de contrôle et les fichiers enregistrés, hors de l’espace de travail
  5. Il active et démarre un service systemd pour l’agent, endue-computer@<agent-id>, puis indique si la connexion a réussi.

Ajoutez des options à la fin de la commande d’installation :

Fenêtre de terminal
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
OptionValeur par défautEffet
--allow-exec <list>git,node,npm,npx,python3,pip3,curlLes programmes que l’agent peut exécuter, séparés par des virgules, sans chemin. --allow-exec "" désactive entièrement l’exécution de programmes.
--no-networkRéseau autoriséLes programmes que l’agent exécute ne peuvent pas utiliser le réseau.
--no-deleteSuppression autoriséeL’agent ne peut pas supprimer de fichiers dans son espace de travail. Des outils comme git et npm suppriment des fichiers de verrouillage et des fichiers temporaires : avec le profil sandboxed, ils échouent donc.
--profile auto|sandboxed|managedautoLe profil à utiliser.

Un programme de la liste qui n’est pas installé sur le serveur est signalé lors de l’installation. Si l’agent tente de l’exécuter, il obtient « non installé ».

Autoriser un programme ne limite pas ce que fait ce programme. Autoriser node ou python3 permet à l’agent d’exécuter n’importe quel code que ceux-ci peuvent exécuter, dans les limites du profil.

ProfilPrérequisCe que les programmes exécutés par l’agent ne peuvent pas faire
sandboxedLinux 6.12 ou ultérieur (Landlock ABI 6)Lire ou écrire des fichiers en dehors du dossier de l’espace de travail. Toutes les restrictions de managed s’appliquent aussi.
managedTout autre noyau, comme Ubuntu 22.04 (5.15) ou le noyau GA d’Ubuntu 24.04 (6.8)Devenir root ou obtenir des privilèges. systemd masque /home, /root et les dossiers des autres agents, et met le reste du système en lecture seule. Il n’y a pas de bac à sable au niveau du système de fichiers : les programmes peuvent lire tout fichier lisible par l’utilisateur endue.

auto choisit sandboxed si le noyau le prend en charge, et se rabat sur managed en le signalant. Si vous demandez sandboxed sur un noyau qui ne le prend pas en charge, le programme d’installation s’arrête sans rien installer. N’utilisez managed que sur un serveur ou une VM dédiés à l’agent.

Un même serveur peut servir plusieurs agents. Dans Ressources › Appareils, ouvrez le menu de la ligne du serveur, sélectionnez Ajouter un agent, choisissez l’agent, puis exécutez la nouvelle commande sur le même serveur.

Chaque agent dispose de son propre service, de son propre fichier de configuration et de ses propres dossiers. Le programme et l’utilisateur endue sont partagés. Avec le profil managed, c’est systemd qui empêche chaque agent d’accéder aux dossiers des autres.

Remplacez <agent-id> par la valeur qui suit --instance dans votre commande.

Fenêtre de terminal
sudo systemctl status endue-computer@<agent-id> # vérifier qu'il tourne
sudo systemctl start endue-computer@<agent-id> # le démarrer
sudo systemctl stop endue-computer@<agent-id> # l'arrêter
sudo journalctl -u endue-computer@<agent-id> -f # suivre le journal

Tant que le service est arrêté, l’appareil affiche Éteint et l’agent vous demande de le démarrer. endue ne crée pas d’endue Computer dans le cloud pour le remplacer.

Réexécuter une commande d’installation avec le même --instance remplace les paramètres, jeton compris, et redémarre le service.

Vous ne pouvez pas créer de nouvelle commande tant que le serveur de l’agent est connecté. Arrêtez d’abord le service sur le serveur, puis recréez la commande.

Fenêtre de terminal
curl -fsSL https://download.endue.ai/computer/install.sh | sudo sh -s -- \
--uninstall --instance <agent-id>

Cette commande arrête et désactive le service de l’agent, et supprime son fichier de configuration. Les dossiers de l’espace de travail et d’état sont conservés, sauf si vous ajoutez --purge. Sans --instance, tous les agents du serveur sont retirés. Quand il ne reste plus aucun agent, le programme et la définition du service sont également supprimés.

Désinstaller sur le serveur ne retire pas l’appareil d’endue, et le retirer dans endue ne le désinstalle pas du serveur. Faites les deux : ici, puis Retirer sur l’agent dans le menu de la ligne de l’appareil. Voir Retirer un appareil.

  • Linux uniquement, sur x86_64 ou aarch64. Les versions macOS et Windows ne sont pas encore disponibles.
  • Un endue Computer par agent. Un agent installé sur votre serveur ne peut pas en avoir un autre sur le cloud endue, et un agent déjà installé sur un autre serveur doit d’abord y être retiré.
  • endue ne peut démarrer ni votre serveur ni le service. Si l’un des deux est arrêté, l’agent travaille sans lui.
  • L’agent ne peut utiliser les outils du serveur que lorsque le service est connecté. Les programmes qu’il a lancés en arrière-plan s’arrêtent quand le service s’arrête.
  • Sans systemd, par exemple dans certains conteneurs, ajoutez --no-systemd. Le programme d’installation met les fichiers en place et affiche la commande pour démarrer endue Computer vous-même. Les protections systemd décrites plus haut ne s’appliquent alors pas.
  • Si le service ne démarre pas et renvoie status=226/NAMESPACE, la machine ne peut pas créer d’espaces de noms de montage, ce qui arrive dans certains conteneurs LXC et OpenVZ. Utilisez une VM complète, ou --no-systemd.