Aller au contenu

Installer sous Linux (automatique)

Sur cette page
  1. Avant de commencer
  2. Installer
  3. Installation sans intervention
  4. Mettre à jour
  5. Gérer l'agent
  6. Ce qui est installé
  7. Sécurité
  8. Réglages

L'installateur est le moyen recommandé de faire tourner un agent sur un serveur ou une VM Linux. Il télécharge l'agent, le vérifie, stocke son jeton de manière sûre et l'exécute comme service systemd durci, sous un utilisateur non privilégié. Relancez-le quand vous voulez : il met à jour ou répare l'installation, sans jamais toucher au jeton.

Une machine, un agent. Pour faire tourner plusieurs agents sur un même hôte, utilisez Docker — un conteneur par agent.

Avant de commencer#

  • Une distribution Linux avec systemd 235 ou plus récent (Debian 11+, Ubuntu 20.04+, RHEL/Rocky/Alma 8+…), sur x86_64 ou aarch64, avec la glibc (Alpine et les autres distributions musl : utilisez Docker).
  • Un accès root (ou sudo), curl (ou wget), et les bibliothèques ICU (libicu, présentes sur la plupart des distributions).
  • Le jeton de l'agent, copié lorsque vous avez créé l'agent dans Onagre.

Installer#

Téléchargez l'installateur, puis exécutez-le :

Terminal
curl -fsSLo onagent-install.sh https://d.onag.re/install.sh
sudo bash onagent-install.sh

Il ne demande qu'une chose : le jeton — collez-le ; rien ne s'affiche pendant la saisie.

TEXT
✓ Linux detected (Ubuntu 24.04 LTS, systemd 255)
✓ Architecture: x86_64
✓ Downloading Onagre Agent 2.9.0.0
✓ SHA-256 verified
✓ Binary checked (onagent --version: 2.9.0.0)
✓ System user onagent created
✓ Installing Onagre Agent
✓ Creating system service

Enter your Onagre Agent token:
>

✓ Token stored securely (/etc/onagent/onagent.env, root only)
✓ Service enabled
✓ Agent started
✓ Connected to Onagre

Onagre Agent is ready.

Connected to Onagre ne s'affiche qu'une fois que l'agent lui-même indique être connecté au Hub (son endpoint /ready). Sinon, l'installateur dit ce qui ne va pas — API injoignable, jeton refusé, Hub injoignable — et où regarder.

Vous préférez une seule ligne ? L'installateur est conçu pour être exécuté via un pipe en toute sécurité (rien ne s'exécute avant son téléchargement complet, et le jeton est lu depuis votre terminal) :

Terminal
curl -fsSL https://d.onag.re/install.sh | sudo bash

Installation sans intervention#

Le jeton n'est jamais accepté sur la ligne de commande, où il resterait dans l'historique du shell et la liste des processus. Fournissez-le dans un fichier ou sur l'entrée standard :

Terminal
sudo bash onagent-install.sh --token-file /chemin/du/jeton
Terminal
printf '%s' "$ONAGRE_TOKEN" | sudo bash onagent-install.sh --token-stdin

Ajoutez --yes pour répondre oui à toutes les questions (mises à jour, migration). L'installateur se termine avec un code non nul si l'agent ne se connecte pas.

Mettre à jour#

Relancez l'installateur :

Terminal
sudo bash onagent-install.sh
TEXT
Onagre Agent already installed
Current version: 2.8.4.112
Latest version:  2.9.0.0

Upgrade 2.8.4.112 → 2.9.0.0? [Y/n]

La mise à jour est transactionnelle : la nouvelle version est téléchargée, contrôlée par son SHA-256 et exécutée une fois (--version) avant tout changement ; le binaire actuel est conservé ; le nouveau le remplace de façon atomique, puis l'agent redémarre. Si l'agent était connecté avant et ne l'est plus après la mise à jour, la version précédente est restaurée automatiquement. Le jeton et /etc/onagent/onagent.env ne sont jamais modifiés.

Commande Effet
sudo bash onagent-install.sh Installe, met à jour vers la dernière version, ou répare (binaire, service ou jeton manquant).
sudo bash onagent-install.sh --version 2.9.0.0 Installe exactement cette version (mise à jour ou retour en arrière).
sudo bash onagent-install.sh --rollback Revient au binaire conservé par la dernière mise à jour (relancez-le pour annuler).
sudo bash onagent-install.sh --set-token Remplace le jeton — après Revoke and regenerate dans Onagre — et redémarre l'agent. Aussi avec --token-file ou --token-stdin.
sudo bash onagent-install.sh --uninstall Supprime l'agent ; conserve /etc/onagent (jeton). Ajoutez --purge pour le supprimer aussi, avec l'utilisateur onagent.
sudo bash onagent-install.sh --help Toutes les options.

Gérer l'agent#

Terminal
systemctl status onagent
journalctl -u onagent
journalctl -u onagent -f
journalctl -u onagent --since today
journalctl -u onagent -p warning

Les logs vont dans le journal systemd, avec leur niveau : -p warning n'affiche que les avertissements et les erreurs. Si le jeton est refusé, l'agent s'arrête (code de sortie 78) au lieu de redémarrer en boucle : corrigez le jeton avec --set-token.

Ce qui est installé#

Élément Emplacement
Agent /usr/local/bin/onagent
Jeton et réglages /etc/onagent/onagent.env (TOKEN=…, root uniquement, mode 0600)
Service /etc/systemd/system/onagent.service
Version précédente (retour arrière) et état de l'installateur /usr/local/lib/onagent/
Cache d'exécution /var/cache/onagent/
Logs journal systemd (journalctl -u onagent)

Sécurité#

L'agent s'exécute sous l'utilisateur système onagent (sans shell ni répertoire personnel), jamais en root. Le service ne lui accorde que CAP_NET_RAW, nécessaire au Sensor Ping et à la découverte réseau, et le durcit : système en lecture seule, aucune élévation de privilèges, aucun accès aux périphériques ni aux réglages du noyau.

Les Sensors Fichier ne peuvent lire que les fichiers lisibles par l'utilisateur onagent. Pour un fichier lisible par root seul, accordez la lecture de ce seul fichier :

Terminal
sudo setfacl -m u:onagent:r /chemin/du/fichier

Pour modifier le service — davantage de fichiers ouverts, une variable d'environnement supplémentaire… — utilisez un drop-in, conservé par les mises à jour :

Terminal
sudo systemctl edit onagent

Réglages#

Les réglages sont des variables d'environnement : ajoutez-les dans /etc/onagent/onagent.env, une ligne NOM=valeur chacune, puis sudo systemctl restart onagent. Les mises à jour les conservent. Voir Configuration de l'agent.

Les endpoints de santé écoutent par défaut sur 127.0.0.1:27520, depuis la machine elle-même uniquement. HTTP_API_BIND=0.0.0.0 (ou une adresse de la machine) et PORT changent cela : une adresse autre que la boucle locale expose ces endpoints au réseau — leur protection (pare-feu) vous revient ; l'installateur ne crée aucune règle de pare-feu.

Vous préférez faire chaque étape vous-même ? Voir Linux (manuel).