Passer au contenu principal

Exemples et recettes de Level CLI

Use practical lvl examples to inspect devices, export data, run diagnostics, and preview automation changes safely.

Ces recettes présentent les méthodes courantes d'utilisation de Level CLI depuis un terminal. Remplacez les exemples de noms tels que web-01, Laptops, et Disk cleanup avec des ressources de votre compte Level.

ℹ️ REMARQUE : Exécutez lvl auth status avant une recette pour confirmer le profil actif et l'organisation Level. Préférez les identifiants de ressource lorsqu'un nom correspond à plusieurs enregistrements.

Se connecter et vérifier la session

Démarrer la connexion via le navigateur :

lvl auth login

Confirmer la session active :

lvl auth status

La commande de connexion affiche un code à usage unique et une URL de vérification. Après avoir approuvé l'accès dans votre navigateur, la CLI enregistre la session pour le profil actif.

Lister et filtrer les appareils

Rechercher des noms d'appareils et retourner chaque page correspondante :

lvl device list --search web --limit all

Retourner les mêmes résultats au format JSON :

lvl device list --search web --limit all -o json

Utiliser le filtre jq intégré pour sélectionner des champs spécifiques :

lvl device list --search web --limit all --jq '.list[] | {id, name, online}'

--jq implique une sortie JSON. Les résultats sous forme de chaîne s'affichent en texte brut. Les objets et autres valeurs s'affichent en JSON compact, un résultat par ligne.

ℹ️ REMARQUE : Les commandes de liste paginées retournent jusqu'à 100 enregistrements par défaut. Utilisez --limit all uniquement lorsque vous avez besoin de l'ensemble complet des résultats.

Exporter les appareils au format CSV

Exporter les appareils d'un groupe :

lvl device export --group Laptops > devices.csv

L'exportation écrit le CSV brut sur la sortie standard. Redirigez-la vers un fichier plutôt que d'ajouter -o json.

Vous pouvez utiliser le même modèle pour les alertes et les exécutions d'automatisation :

lvl alert export --status resolved > resolved-alerts.csv
lvl run export --status error > failed-runs.csv

Exécuter un diagnostic en lecture seule sur un appareil de type Unix

L'exemple suivant vérifie l'utilisation du système de fichiers sur un appareil Linux ou macOS :

lvl script run \  --device web-01 \  --command 'df -h' \  --shell bash \  --run-as current_user \  --wait \  -o json

Cette commande crée une exécution de script ad hoc. --wait interroge régulièrement jusqu'à la fin de l'exécution et inclut la sortie des étapes dans le résultat.

Si vous omettez --wait, la CLI retourne les identifiants d'exécution découverts. Vérifiez une exécution ultérieurement avec :

lvl run get RUN_ID --wait -o json

⚠️ AVERTISSEMENT : Confirmez le système d'exploitation cible avant d'exécuter une commande ad hoc. La création de scripts et les exécutions ad hoc utilisent par défaut le paramètre SYSTEM du paramètre d'exécution, sauf si vous spécifiez une autre valeur.

Créer et réutiliser un script de diagnostic enregistré

Si vous disposez déjà d'un script Bash vérifié dans os-info.sh, enregistrez-le dans Level :

lvl script create \  --name 'OS info' \  --file ./os-info.sh \  --shell bash \  --run-as current_user \  -o json

Exécuter le script enregistré par son nom :

lvl script run 'OS info' --device web-01 --wait -o json

Remplacer les valeurs de variables enregistrées pour une seule exécution :

lvl script run 'Repair Chrome' --device web-01 --variable channel=stable --variable version=129 --wait -o json

--variable est disponible uniquement lorsque vous exécutez un script enregistré. Répétez --variable <name>=<value> pour chaque remplacement. Vous pouvez identifier une variable par son nom, son identifiant ou {{reference}}. Les variables que vous ne spécifiez pas utilisent leurs valeurs par défaut enregistrées. Chaque valeur est conservée exactement telle quelle, y compris une valeur vide, les virgules et les = signes.

Un script enregistré conserve son interpréteur de commandes configuré, son délai d'expiration et son paramètre d'exécution. Lorsque vous exécutez un script enregistré par nom ou par identifiant, n'ajoutez pas de remplacements pour l'interpréteur de commandes ou le paramètre d'exécution.

Utilisez un identifiant de script lorsque plusieurs scripts portent le même nom.

Prévisualiser une spécification d'automatisation

Exporter une automatisation existante au format YAML :

lvl automation spec 'Disk cleanup' > disk-cleanup.yaml

Par défaut, les références à d'autres enregistrements utilisent des identifiants, afin de continuer à identifier les mêmes enregistrements après un renommage. Pour rendre les références de ressources prises en charge plus faciles à lire ou à modifier, ajoutez --names:

lvl automation spec 'Disk cleanup' --names > disk-cleanup.yaml

La CLI utilise un nom d'affichage uniquement s'il est résolu vers le même enregistrement. Si le nom est manquant, ambigu ou résolu vers un enregistrement différent, l'identifiant reste dans l'exportation.

Tous les identifiants ne sont pas remplacés. Les références aux actions et variables locales à l'automatisation peuvent rester des identifiants. Utilisez cette recette pour examiner ou mettre à jour l'automatisation existante, et non comme recette complète de clonage ou de migration inter-comptes.

Prévisualiser comment cette spécification modifierait l'automatisation en cours :

lvl automation apply -f disk-cleanup.yaml --dry-run -o json

Une simulation à blanc affiche les modifications planifiées sans les appliquer.

Après avoir examiné le fichier et le résultat de la simulation, appliquez-le avec :

lvl automation apply -f disk-cleanup.yaml

⚠️ AVERTISSEMENT : L'application d'une spécification reconcilie l'automatisation en cours avec le fichier. Les déclencheurs ou actions existants absents du fichier peuvent être supprimés. Les modifications sont appliquées en séquence, de sorte qu'une erreur peut laisser les modifications précédentes en place. Conservez une exportation à jour et exécutez --dry-run avant chaque application.

Inspecter les politiques de surveillance

Lister les politiques de surveillance :

lvl monitor policy list --limit all

Obtenir une politique par identifiant ou par nom :

lvl monitor policy get 'Server health' -o json

Exporter sa spécification :

lvl monitor policy spec 'Server health' > server-health.yaml

L'exportation par défaut utilise des identifiants pour les références à d'autres enregistrements, préservant ainsi les mêmes cibles après un renommage. Pour utiliser des noms lisibles pour les références prises en charge à la place, ajoutez --names:

lvl monitor policy spec 'Server health' --names > server-health.yaml

Un nom n'est utilisé que s'il est résolu vers le même enregistrement. Les noms manquants ou ambigus, ou les noms résolus vers un enregistrement différent, laissent l'identifiant inchangé ; ainsi, une exportation nommée peut encore contenir des identifiants.

Prévisualiser une spécification avant de l'appliquer :

lvl monitor policy apply -f server-health.yaml --dry-run -o json

Comme pour l'application d'une automatisation, l'application d'une politique de surveillance reconcilie la ressource en cours et n'est pas transactionnelle.

Utiliser des références qualifiées par groupe

Les références d'appareils peuvent utiliser un identifiant, un nom d'hôte, un nom, un surnom ou un nom d'hôte qualifié par groupe :

lvl device get 'Servers/web-01'

Les références qualifiées par groupe sont utiles lorsque différents groupes d'appareils contiennent le même nom d'hôte. Si une référence est toujours ambiguë, la CLI s'arrête et liste les correspondances au lieu d'en choisir une.

Inspecter les options exactes et les formats de sortie

Afficher l'aide normale d'une commande :

lvl script run --help

Afficher la référence générée, y compris le format de sortie JSON :

lvl skill describe script run

Afficher toutes les commandes d'un groupe :

lvl skill describe update

La CLI installée est la source de vérité pour ses options et définitions de sortie actuelles.

Liste de contrôle de sécurité

Avant d'exécuter une commande qui modifie Level ou un appareil géré :

  1. Confirmez l'organisation active avec lvl auth status.

  2. Confirmez chaque cible par identifiant, nom ou référence qualifiée par groupe.

  3. Examinez les scripts et les spécifications JSON ou YAML dans leur intégralité.

  4. Vérifiez si la commande utilise par défaut SYSTEM, installe des mises à jour, redémarre un appareil ou remplace un fichier.

  5. Utilisez --dry-run lorsque disponible.

  6. Utilisez --yes uniquement après avoir examiné l'ensemble complet des ressources sélectionnées.

  7. Consultez l'historique des exécutions ou les journaux de mise à jour pour les résultats asynchrones.

Les commandes de suppression définitive nécessitent une confirmation dans un terminal interactif et requièrent --yes lors d'une exécution non interactive. Certaines commandes, notamment le redémarrage et l'arrêt des appareils, déclenchent l'action immédiatement sans invite de confirmation.

Avez-vous trouvé la réponse à votre question ?