Rechercher la syntaxe et la sortie de l’outil en ligne de commande

L’article précédent fournissait des critères pour sélectionner l’outil en ligne de commande que vous souhaitez amplifier avec Crescendo. Dans cet article, nous décrivons les moyens de collecter des informations sur l’outil qui vous aide à concevoir des applets de commande à l’aide de Crescendo.

Pour les exemples de cet article, nous utilisons l’outil Agent Azure Connected Machine (azcmagent). Nous avons choisi cet outil pour les raisons suivantes :

  • Il est facile à installer et à supprimer
  • Il ne nécessite pas d’abonnement Azure actif pour une utilisation de base
  • Il dispose d’une aide et d’une documentation en ligne utiles dans la console
  • Il produit une sortie facilement consommable

Conseil

Si vous n’avez pas cet outil, vous n’avez pas besoin de l’installer, sauf si vous souhaitez essayer les exemples.

Pour plus d’informations, consultez la section Installation de l’outil azcmagent de cet article.

Commencez par l’aide et la documentation en ligne de commande

De nombreux outils en ligne de commande incluent un commutateur ou un paramètre pour afficher le contenu d’aide. La plupart des outils en ligne de commande modernes fournissent plusieurs niveaux d’aide pour les différents scénarios de cas d’usage fournis par l’outil. Par exemple, l’exécution azcmagent sans paramètres affiche l’aide de niveau supérieur, qui contient une liste de sous-commandes.

...
Usage:
  azcmagent [command]

Available Commands:
  check       Runs connectivity checks
  config      Change configuration settings for this machine
  connect     Connects this machine to Azure
  disconnect  Disconnects this machine from Azure
  help        Help about any command
  license     Display the End-user license agreement file
  logs        Creates a .zip file containing relevant logs. This is primarily useful for troubleshooting.
  show        Gets machine metadata and Agent status. This is primarily useful for troubleshooting.
  version     Display the Hybrid Management Agent version
...

Chacune des sous-commandes peut avoir ses propres sous-commandes et paramètres. Par exemple, la config sous-commande a cinq sous-commandes.

PS> azcmagent config --help
Change configuration settings for this machine

Usage:
  azcmagent config [command]

Available Commands:
  clear       Clear a configuration property's value
  get         Get a configuration property's value
  info        Describes the config properties users can set
  list        List all configuration properties and values
  set         Set a value for a configuration property

Flags:
  -h, --help      help for config
      --version   version for config

Global Flags:
      --config string   config file (default is $HOME/.azcmagent.yaml)
  -j, --json            Output in JSON format
      --log-stderr      Redirect error and verbose messages to stderr
  -v, --verbose         Increase logging verbosity to show all logs

Use "azcmagent config [command] --help" for more information about a command.

Utilisez l’aide de ligne de commande pour découvrir les cas d’usage possibles. Vous pouvez rediriger la sortie de chaque commande d’aide vers un fichier que vous pouvez utiliser pour référence ultérieurement lors de la création de vos applets de commande Crescendo.

Conseil

Si le contenu d’aide est structuré de manière cohérente, il peut être possible de créer du code qui génère des applets de commande en analysant cette sortie d’aide. Crescendo est fourni avec des analyseurs d’aide expérimental pour illustrer la façon dont cela peut être accompli. Consultez le Experimental dossier dans le dossier racine du module Microsoft.PowerShell.Crescendo .

Notez les formats de sortie qu’offre l’outil en ligne de commande. De nombreux outils en ligne de commande peuvent générer des informations dans des formats tels que CSV ou JSON. Ces formats structurés sont facilement convertis en objets PowerShell.

Capture d’exemple de sortie pour l’analyse

Une fois que vous avez choisi les commandes de l’outil à amplifier avec Crescendo, collectez des exemples de sortie à partir de ces commandes. Redirigez la sortie vers un fichier pour chaque commande. Utilisez cet exemple de données pour vous aider à concevoir les gestionnaires de sortie (analyseurs) pour vos applets de commande Crescendo.

Lorsque vous inspectez l’exemple de sortie, réfléchissez aux types de données retournées. Lorsque vous construisez vos objets, vous devez convertir les chaînes sorties par l’outil en ligne de commande en types .NET. Par exemple, les informations d’horodatage peuvent être converties en types .NET [DateTime] . Examinez également la mise en forme de la sortie pour les marqueurs qui séparent les champs de données. Ces marqueurs peuvent être utilisés pour analyser les informations lorsque vous construisez vos objets pour la sortie.

L’outil azcmagent a la possibilité de générer des informations au format JSON. La conversion en objet PowerShell est donc très simple. Par exemple :

PS> $agentStatus = azcmagent show --json | ConvertFrom-Json
PS> $agentStatus.services

displayName       serviceName      status
-----------       -----------      ------
GC Service        gcarcservice     running
Extension Service extensionservice running
Agent Service     himds            running

Pour obtenir des exemples plus complexes de sortie d’analyse, consultez ce billet de blog du blog de la communauté PowerShell.

Notes

L’outil azcmagent doit être exécuté avec des privilèges d’administration. Cela signifie également que le module que vous créez doit être exécuté avec le privilège d’administration.

Installation de l’outil azcmagent

Vous pouvez télécharger le package de l’agent Azure Connected Machine pour Windows et Linux à partir des emplacements listés ci-dessous.

  • Téléchargez le package Windows Installer pour l’agent Windows à partir du Centre de téléchargement Microsoft.
  • L’agent Linux est distribué à partir du référentiel de packages de Microsoft. Choisissez le format de package préféré pour la distribution (RPM ou DEB).

Pour plus d’informations sur l’agent Azure Connected Machine, consultez Gestion et maintenance de l’agent Machine connectée.

Étape suivante