Exécuter une découverte d'invités

Ce document décrit les étapes à suivre pour exécuter les différentes méthodes de découverte d'invités fournies par la CLI mcdc.

La découverte d'invités vous permet d'analyser et de collecter des données sur les applications en cours d'exécution sur vos machines, y compris les instances de machines virtuelles (VM) et les serveurs physiques. Il collecte également des données sur la configuration de la machine, le matériel, le réseau, ainsi que sur les fichiers, services et processus ouverts.

Pour les machines exécutées sur des plates-formes pour lesquelles la CLI du client de découverte Migration Center ne prend pas en charge la découverte d'inventaire, comme les machines exécutées sur site, ainsi que pour une évaluation complète des VM exécutées sur VMware, AWS et Azure, vous pouvez exécuter une découverte d'invités. La découverte d'invités utilise un script de collecte d'invités pour collecter des données sur la machine et les écrire dans un fichier tar de collecte d'invités pour les machines Linux ou dans un fichier zip pour les machines Windows.

La machine qui héberge la CLI mcdc importe le script sur la machine cible, l'exécute, puis télécharge les résultats. Vous pouvez exécuter le script localement sur la machine cible ou à distance. Selon votre infrastructure, vous pouvez choisir d'utiliser la CLI mcdc de l'une des manières suivantes :

  • Pour les VM Linux et Windows déployées sur VMware, l'CLI mcdc est compatible avec l'exécution à distance à l'aide de la commande discover vsphere.
  • Pour les machines Linux accessibles par l'CLI mcdc, vous pouvez effectuer une découverte à distance à l'aide de SSH avec la commande discover ssh.
  • Pour les machines Windows accessibles par la CLI mcdc, vous pouvez effectuer une découverte à distance à l'aide de Windows Management Instrumentation (WMI) avec la commande discover wmi.
  • Pour les machines Linux et Windows sans connexion à la CLI mcdc, vous pouvez télécharger et exécuter les scripts de collecte des invités en local, puis importer manuellement les données collectées sur la machine qui héberge la CLI mcdc.

Le script de collecte d'invités exécute une série de commandes pour collecter des informations sur la machine source. Il peut également collecter des données potentiellement sensibles, telles que des arguments de ligne de commande, des informations réseau, ou des variables et arguments d'environnement dans les processus en cours d'exécution.

Avant de commencer

  1. Consultez les conditions requises pour télécharger et exécuter la CLI mcdc.
  2. Consultez les exigences pour télécharger et exécuter les scripts de collecte d'invités.
  3. Suivez les étapes pour télécharger la CLI mcdc.

Collecter les données à distance à l'aide des outils VMware

Pour les VM hébergées sur vSphere, la CLI mcdc peut utiliser les outils VMware pour déployer et exécuter les scripts de collecte à distance sur des VM Linux et Windows. Lorsque vous utilisez les outils VMware, l'outil CLI mcdc effectue les opérations suivantes :

  • importe le script de collecte sur la VM ;
  • exécute le script sur la VM ;
  • télécharge et importe les résultats.

Deux ensembles d'identifiants sont requis pour collecter des données à distance :

  • Nom d'utilisateur du serveur vCenter transmis à la CLI mcdc pour se connecter à vSphere. Il doit disposer des droits suivants sur la VM :
    • Modifications d'opération d'invité
    • Exécution du programme d'opération d'invité
    • Requêtes concernant les opérations d'invités
  • Identifiants utilisateur pour la VM :
    • Sous Windows, vous devez disposer des droits d'administrateur.
    • Sur Linux, vous pouvez utiliser des identifiants racine ou non racine. Pour en savoir plus, consultez Découverte des invités sur Linux.

Pour collecter des données à l'aide des outils VMware, procédez comme suit :

  1. Connectez-vous à votre VM Linux qui héberge la CLI mcdc.
  2. Accédez au répertoire dans lequel vous avez téléchargé la CLI mcdc.
  3. Assurez-vous que la VM est allumée.
  4. Exécutez la détection d'invités :

    Linux

    ./mcdc discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID

    Windows

    mcdc.exe discover vsphere guest --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER VM_ID

    Remplacez les éléments suivants :

    • VCENTER_USER : utilisateur du serveur vCenter
    • VM_USER : utilisateur de la VM
    • VM_ID : nom de la VM ou du MOREF
  5. Lorsque vous y êtes invité, saisissez le mot de passe pour VCENTER_USER et VM_USER.

Pour collecter des données provenant de plusieurs VM vSphere en parallèle à l'aide des outils VMware, procédez comme suit :

  1. Connectez-vous à votre VM Linux qui héberge la CLI mcdc.
  2. Accédez au répertoire dans lequel vous avez téléchargé la CLI mcdc.
  3. Assurez-vous que toutes les VM sont activées.
  4. Exécutez la détection d'invités :

    Linux

    ./mcdc discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS

    Windows

    mcdc.exe discover vsphere guest all --url https://VSPHERE_URL -u VCENTER_USER --vm-user VM_USER --timeout TIMEOUT_IN_SECONDS

    Remplacez TIMEOUT_IN_SECONDS par le délai avant expiration en secondes.

    Vous pouvez éventuellement limiter la découverte aux seules VM Windows ou Linux à l'aide de l'option --os-family, ou modifier le niveau de parallélisme à l'aide de l'option --max-parallelism.

  5. Lorsque vous y êtes invité, saisissez le mot de passe pour VCENTER_USER et VM_USER.

  6. Vous pouvez également définir la découverte sur des VM spécifiques à l'aide de l'option --path, comme décrit pour VMware dans Exécuter une découverte d'inventaire.

Vous pouvez exporter et évaluer ces données collectées en ligne dans Migration Center, ou exécuter une évaluation hors connexion.

Découverte des invités sur Linux

Si vous exécutez la découverte d'invités avec un accès racine (par exemple, en utilisant sudo), la CLI mcdc collecte plus de données sur votre machine que si vous l'exécutez avec des identifiants d'utilisateur non racine.

Le tableau suivant compare les données collectées par le script de découverte des invités en fonction du niveau d'accès.

Cliquez pour voir les données collectées

Catégorie Données Accès non root Accès root
Matériel Numéro de série du produit Ignoré :
nécessite un accès root.
Collectée :
depuis /sys/class/dmi/id/product_serial.
Mise en réseau Mappage des processus aux ports Partielle :
les informations de connexion sont collectées, mais les PID/noms de programme pour les processus des autres utilisateurs ne le sont pas.
Complète :
tous les ports d'écoute et toutes les connexions sont mappés à leurs PID et noms de programme respectifs.
Middleware Internes JBoss / Tomcat Limité :
seuls l'environnement, les descripteurs et les limites des processus de l'utilisateur actuel sont accessibles.
Complète :
lit les données de processus (environ, fd, limits) pour toutes les instances de middleware à partir de /proc/[PID].
Stockage Bloquer des appareils et des supports Complète :
outils standards tels que lsblk et df accessibles aux utilisateurs.
Complète :
détails du périphérique de bloc et montages système.
Configuration Fichiers système à accès restreint Partielle :
ne collecte pas d'informations à partir de fichiers tels que /etc/exports et certaines configurations Apache qui peuvent être illisibles en fonction des autorisations.
Complète :
contourne toutes les restrictions d'autorisation de fichier pour collecter les fichiers de configuration requis.
Sécurité État SELinux Restreint : les informations de configuration détaillées ne sont pas collectées.
Full (Complet) : la sortie complète est collectée à partir de l'outil sestatus.
Inventaire Packages installés Complète : les gestionnaires de packages standards (dpkg, rpm) sont accessibles à tous les utilisateurs.
Complète :
une liste complète de tous les packages système installés est collectée.

Collecter les données à distance via SSH

Si la machine qui héberge la CLI mcdc dispose d'un accès SSH à la machine Linux cible (les machines Windows ne sont pas compatibles), la CLI mcdc peut se connecter à la machine cible via SSH pour collecter des données.

Lorsque vous utilisez SSH, la CLI mcdc effectue les opérations suivantes :

  1. importe le script de collecte sur la machine ;
  2. exécute le script sur la machine avec les identifiants utilisateur de la machine transmis à la CLI mcdc.

  3. télécharge et importe les résultats.

Modes SSH compatibles

Si vous utilisez la CLI mcdc sur une machine Linux, vous pouvez exécuter SSH de deux manières :

  • Par défaut : utilise le binaire ssh et les configurations sur la machine CLI mcdc. Le mode par défaut peut utiliser les fichiers de configuration SSH locaux par défaut, tels que ~/.ssh/config et ~/.ssh/known_hosts, du poste de travail qui l'héberge.

    Saisissez le mot de passe lorsque vous y êtes invité, ou utilisez sshpass pour transmettre le mot de passe ou la phrase secrète du fichier de clé privée sur la ligne de commande. Exemple :

    sshpass -p password mcdc discover ssh IP_ADDRESS
    

    Remplacez IP_ADDRESS par l'adresse IP de la machine.

  • Intégré : utilise la bibliothèque SSH intégrée. Ce mode vous permet d'utiliser le client SSH intégré si le mode par défaut cesse de fonctionner dans votre environnement. Toutefois, il n'utilise pas les fichiers de configuration SSH locaux par défaut. Vous pouvez utiliser le flag -i pour spécifier un fichier de clé privée SSH.

Si vous utilisez la CLI mcdc sur une machine Windows, seul le mode intégré est compatible.

Exécuter la collection

Pour collecter des données via SSH, procédez comme suit :

  1. Connectez-vous à la machine Linux qui héberge la CLI mcdc.
  2. Accédez au répertoire dans lequel vous avez téléchargé la CLI mcdc.
  3. Collectez des données.

    Linux

    ./mcdc discover ssh IP_HOSTNAME

    Windows

    mcdc.exe discover ssh IP_HOSTNAME

    Pour découvrir et collecter des composants de base de données, utilisez l'indicateur --db-engine :

    Linux

    ./mcdc discover ssh IP_HOSTNAME --db-engine=DB_ENGINE

    Windows

    mcdc.exe discover ssh IP_HOSTNAME --db-engine=DB_ENGINE

    Remplacez les éléments suivants :

    • IP_HOSTNAME : nom d'hôte ou adresse IP de la machine.
    • DB_ENGINE : moteur de base de données à collecter. Les valeurs acceptées sont sqlserver, mysql et postgresql.
  4. Le fichier de clé privée SSH de l'utilisateur appelant la CLI mcdc est utilisé pour l'authentification SSH.

    Lorsque vous y êtes invité, saisissez le nom d'utilisateur d'un compte sur la machine Linux. Le script de collecte s'exécute en utilisant ces identifiants. Si la clé privée SSH de l'utilisateur appelant l'CLI mcdc ne parvient pas à s'authentifier auprès de la machine avec le nom d'utilisateur, vous êtes également invité à saisir un mot de passe.

Autres scénarios d'utilisation de SSH

Voici quelques scénarios dans lesquels vous devrez peut-être modifier la commande :

  • Pour spécifier l'utilisateur de la machine en mode par défaut, utilisez l'option -u :

    Linux

    ./mcdc discover ssh -u USER IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER IP_HOSTNAME

    Remplacez USER par l'utilisateur de la machine.

    Lorsque vous y êtes invité, saisissez le mot de passe de l'utilisateur.

  • Pour spécifier le mode détaillé, utilisez l'option -v :

    Linux

    ./mcdc discover ssh -u USER -v IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER -v IP_HOSTNAME

  • Pour spécifier le fichier de clé privée SSH, utilisez l'option -i. Par exemple, pour spécifier .ssh/my_private_key :

    Linux

    ./mcdc discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -i ~/.ssh/my_private_key -u USER IP_HOSTNAME

  • Pour spécifier le mot de passe sur la ligne de commande, utilisez le mode intégré :

    Linux

    ./mcdc discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME

    Windows

    mcdc.exe discover ssh --ssh-client embedded -u USER --passphrase PASSWORD IP_HOSTNAME

    Comme la forme intégrée de la commande n'utilise pas les fichiers de configuration SSH locaux par défaut, assurez-vous que l'utilisateur que vous spécifiez dans la commande peut accéder à la machine via SSH et dispose des droits d'accès nécessaires pour exécuter le script de collecte.

  • Pour spécifier le fichier de clé privée SSH avec le mode intégré, utilisez l'indicateur -i :

    Linux

    ./mcdc discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME

    Windows

    mcdc.exe discover ssh --ssh-client embedded -i ~/.ssh/id_rsa -u USER --password PASSWORD IP_HOSTNAME

  • La commande CLI mcdc vous permet de spécifier la plupart des options SSH. Il transmet ensuite ces indicateurs à la commande ssh à l'aide de l'indicateur -a ou --ssh-args. Par exemple, pour utiliser un proxy socks :

    Linux

    ./mcdc discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER -a '-o' -a 'ProxyCommand=nc -X 5 -x 127.0.0.1:proxy port %h %p' IP_HOSTNAME

Vous pouvez exporter et évaluer ces données collectées en ligne dans Migration Center, ou exécuter une évaluation hors connexion.

Collecter les données sur une machine Linux individuelle

Pour effectuer une collecte d'invités localement sur une machine Linux, vous pouvez exécuter le script mcdc-linux-collect.sh. Vous pouvez ensuite copier le fichier tar généré par le script sur la machine qui héberge l&#CLI mcdc et l'importer avec la commande discover import.

Si vous souhaitez collecter toutes les données possibles à partir de votre machine Linux, exécutez le script avec un accès root à l'aide de sudo. Si vous l'exécutez avec des droits d'utilisateur, la CLI mcdc collecte un ensemble de données plus limité. Pour en savoir plus, consultez Découverte des invités sur Linux.

  1. Connectez-vous à votre machine.
  2. Accédez au répertoire dans lequel vous avez téléchargé le script de collecte d'invités.
  3. Exécutez le script de collecte sur la machine :

    • Pour exécuter avec un accès root :

      sudo ./mcdc-linux-collect.sh
      
    • Pour exécuter sans accès root :

      ./mcdc-linux-collect.sh
      

    Le script génère un fichier tar nommé mcdc-collect-MACHINE_NAME-TIMESTAMP.tar dans le répertoire actuel. L'horodatage est au format YYYY-MM-DD-hh-mm.

    Cliquez pour afficher le format du fichier tar de collecte d'invités.

    Le fichier tar a le format suivant :

    collect.log # Log output of the script
     files # Directory containing files with their full path from root. For example:
       |- etc/fstab
       |- etc/hostname
       |- etc/network/interfaces
       |- ...
     commands # Output of commands run by the script:
       |- dpkg
       |- netstat
       |- ps
       |- ...
     found_paths # Text file with the list of installation directories
     machinename # Text file with machine name
     ostype # Text file with operating system type (Linux)
     timestamp # Text file with collection timestamp
     version # Text file with the version of the script
     

    Vous pouvez également transmettre l'argument --output et spécifier le chemin d'accès où vous souhaitez enregistrer le fichier tar.

  4. Copiez les données collectées de la machine cible vers la machine hôte.

  5. Importez les données collectées sur la machine hôte :

    Linux

    ./mcdc discover import PATH_TO_TAR

    Windows

    mcdc.exe discover import PATH_TO_TAR

    Remplacez PATH_TO_TAR par le chemin d'accès au fichier tar.

Vous pouvez exporter et évaluer ces données collectées en ligne dans Migration Center, ou exécuter une évaluation hors connexion.

Collecter les données à distance via WMI

Si vous souhaitez effectuer une découverte d'invité sur une machine Windows cible compatible avec WMI, vous pouvez utiliser la commande mcdc discover wmi sur la machine Windows qui héberge la CLI mcdc. La collecte WMI n'est compatible qu'avec la version Windows de la CLI mcdc.

Par défaut, la CLI mcdc collecte les données à l'aide d'appels WMI à distance, ce qui est plus rapide que la collecte basée sur des scripts. Toutefois, les appels WMI à distance ne sont pas compatibles avec Windows Server 2008 ni les versions antérieures. Si vous devez collecter des données à partir de versions antérieures de Windows ou si vous rencontrez des problèmes lors de l'utilisation d'appels WMI à distance, vous pouvez utiliser la collecte basée sur un script en ajoutant l'indicateur --script.

Lorsque vous utilisez WMI, la CLI mcdc effectue les opérations suivantes :

  1. importe le script de collecte sur la machine ;
  2. exécute le script sur la machine avec les identifiants utilisateur de la machine transmis à la CLI mcdc.

  3. télécharge et importe les résultats dans Migration Center.

Pour collecter des données via WMI, procédez comme suit :

  1. Connectez-vous à la machine Windows qui héberge la CLI mcdc.
  2. Accédez au répertoire dans lequel vous avez téléchargé la CLI mcdc.
  3. Collectez des données à l'aide de l'une des méthodes suivantes :

    • Pour collecter des données avec des appels WMI à distance, exécutez la commande suivante :

      mcdc.exe discover wmi IP_HOSTNAME
      

      Remplacez IP_HOSTNAME par le nom d'hôte de l'adresse IP de la machine.

    • Pour collecter des données à l'aide de la collecte basée sur un script, utilisez l'indicateur --script :

      mcdc.exe discover wmi --script IP_HOSTNAME
      
  4. Saisissez vos identifiants lorsque vous y êtes invité.

Vous pouvez exporter et évaluer ces données collectées en ligne dans Migration Center, ou exécuter une évaluation hors connexion.

Collecter les données sur une machine Windows individuelle

Pour effectuer une collecte d'invités localement sur une machine Windows, vous pouvez exécuter le script mcdc-windows-collect.ps1. Vous pouvez ensuite copier le fichier ZIP généré par le script sur la machine qui héberge l&#CLI mcdc et l'importer avec la commande discover import.

  1. Connectez-vous à votre machine.
  2. Ouvrez PowerShell à l'aide de l'option Exécuter en tant qu'administrateur.
  3. Accédez au répertoire dans lequel vous avez téléchargé la CLI mcdc.
  4. Exécutez le script de collecte sur la machine :

    powershell -ExecutionPolicy ByPass -File .\mcdc-windows-collect.ps1
    
  5. Le script génère un fichier zip nommé mcdc-collect-MACHINE_NAME-TIMESTAMP.zip dans le répertoire actuel.

    Vous pouvez éventuellement inclure un chemin de sortie pour spécifier un emplacement différent :

    .\mcdc-windows-collect.ps1 PATH_FOR_OUTPUT.zip
    
  6. Importez les données collectées sur la machine hôte :

    Linux

    ./mcdc discover import PATH_TO_TAR

    Windows

    mcdc.exe discover import PATH_TO_TAR

    Remplacez PATH_TO_TAR par le chemin d'accès au fichier tar.

Vous pouvez exporter les données collectées et les évaluer en ligne dans Migration Center, ou exécuter une évaluation hors connexion.

Étapes suivantes