Collecter les données des invités à partir de VM EC2 pour une évaluation hors connexion


Ce tutoriel vous guide tout au long du processus de découverte et de collecte de données sur des instances de machine virtuelle (VM) EC2 à utiliser pour l'évaluation technique hors connexion à l'aide de la CLI du client de découverte du centre de migration.

Objectifs

Dans ce tutoriel, vous allez apprendre à effectuer les opérations suivantes :

  • Télécharger la CLI mcdc pour évaluer vos VM AWS EC2.
  • Exécuter une découverte d'inventaire AWS EC2.
  • Collecter des informations au niveau invité sur toutes les instances d'une région EC2 à l'aide du gestionnaire de sessions AWS ou de SSH.
  • Générer un rapport d'évaluation hors connexion.
  • (Avancé) Modifier les scripts en fonction de vos besoins.
  • (Avancé) Écrire entièrement un script d'orchestration.

Coûts

Ce tutoriel n'entraîne aucuns frais Google Cloud.

Il est peu probable que cela ait un impact sur vos coûts AWS.

Avant de commencer

Les conditions préalables dépendent de la manière dont vous vous connectez à vos VM EC2.

Gestionnaire de sessions

  1. Préparez une machine Linux pour télécharger et exécuter la CLI mcdc. La machine Linux doit répondre aux exigences minimales suivantes :

    • Linux Kernel 2.6.23 ou une version ultérieure
    • 4 Go de RAM et 10 Go d'espace disque
    • CLI AWS installée
  2. Assurez-vous que la CLI AWS dispose des autorisations suivantes :

    • Peut appeler aws ssm describe-instance-information
    • Peut appeler aws ssm start-session

SSH

  1. Préparez une machine Linux pour télécharger et exécuter la CLI mcdc. La machine Linux doit répondre aux exigences minimales suivantes :

    • Linux Kernel 2.6.23 ou une version ultérieure
    • 4 Go de RAM et 10 Go d'espace disque
    • CLI AWS installée
    • Connectivité réseau aux instances EC2 (éventuellement via un proxy)
  2. Assurez-vous que la CLI AWS dispose des autorisations suivantes :

Télécharger la CLI mcdc

  1. Connectez-vous à la machine Linux :
    ssh MACHINE_IP
    

    Remplacez MACHINE_IP par l'adresse IP de votre machine Linux.

  2. Téléchargez la dernière version de la CLI mcdc et rendez-la exécutable :
      curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc"
      chmod +x mcdc
    
  3. Ajoutez la CLI mcdc au chemin d'accès à l'interface système :
    PATH=$PATH:`pwd`
    

Exécuter une découverte d'inventaire AWS

  • Exécutez la détection d'inventaire :

    ./mcdc discover aws -r REGION
    

    Remplacez REGION par la région de vos VM EC2.

    La CLI mcdc vous invite à saisir votre ID de clé d'accès et votre clé d'accès secrète.

    Le résultat de la commande de découverte ressemble à ceci :

    Collected 166 VMs
    [✓] Collection completed.
    

Effectuer la découverte d'invités

Vous pouvez effectuer une découverte d'invités à l'aide du gestionnaire de session ou de SSH.

Gestionnaire de sessions

Cette méthode utilise le gestionnaire de sessions AWS Systems Manager pour effectuer la découverte d'invités sur toutes les VM sur lesquelles l'agent SSM est installé. L'agent SSM est installé par défaut sur la plupart des AMI fournies par Amazon et peut être installé manuellement sur d'autres.

  1. Assurez-vous que toutes les VM disposent d'un rôle IAM permettant la connexion à l'aide du gestionnaire de session. Pour en savoir plus, consultez la documentation AWS.

  2. Assurez-vous que toutes les VM que vous souhaitez collecter sont activées.

  3. Exécutez la détection d'invités à l'aide du script de collecte d'invités ssm à partir du dépôt Migrate to Containers sur GitHub.

    a. Téléchargez le script :

     curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssm.sh
     chmod +x mcdc_collect_aws_guest_ssm.sh
    

    b. Exécutez le script et enregistrez le résultat dans un fichier :

     ./mcdc_collect_aws_guest_ssm.sh --region REGION
    

    Remplacez REGION par la région de vos VM EC2.

    Toutes les options sont transmises directement à aws ssm describe-instance-information. Pour effectuer la collecte à partir d'une VM spécifique, exécutez la commande suivante :

     ./mcdc_collect_aws_guest_ssm.sh --region REGION --filters "Key=InstanceIds,Values=VM_ID"
    

    Remplacez VM_ID par l'ID de la VM.

    Pour en savoir plus sur toutes les options autorisées dans la commande describe-instance-information, consultez la documentation AWS.

SSH

Cette méthode utilise SSH pour effectuer une découverte d'invités sur des VM Linux. Elle se connecte à l'adresse IP publique de chaque VM. Cependant, il doit être facile de modifier le script. Par exemple, pour vous connecter à l'adresse IP privée.

Le script utilise EC2 Instance Connect pour l'authentification. Instance Connect n'est disponible que sur les VM Amazon Linux et Ubuntu, et peut nécessiter une installation. Cependant, vous devriez pouvoir facilement ajuster le script pour utiliser une autre méthode d'authentification, telle que l'authentification par mot de passe à l'aide de sshpass ou une clé privée.

  1. Assurez-vous de disposer d'un accès réseau aux VM. Vous devrez peut-être ajuster les règles entrantes pour vos groupes de sécurité ou vous connecter via un proxy.

  2. Assurez-vous que toutes les VM à partir desquelles vous souhaitez collecter des données sont activées.

  3. Exécutez la détection d'invités à l'aide du script de collecte d'invités SSH à partir du dépôt Migrate to Containers sur GitHub.

    1. Téléchargez le script :

      curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_collect_aws_guest_ssh.sh
      chmod +x mcdc_collect_aws_guest_ssh.sh
      
    2. Exécutez le script et enregistrez le résultat dans un fichier :

      ./mcdc_collect_aws_guest_ssh.sh --region REGION
      

      Remplacez REGION par la région de vos VM EC2.

      Toute option nommée -a ou --ssh-arg est transmise directement à SSH. Pour désactiver l'authentification par clé d'hôte stricte, exécutez la commande suivante :

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o StrictHostKeyChecking=no'
      

      Toutes les autres options sont transmises directement à aws ssh describe-instances. Pour effectuer la collecte à partir d'une VM spécifique, exécutez la commande suivante :

      ./mcdc_collect_aws_guest_ssm.sh --region REGION --instance-ids VM_ID
      

      Remplacez VM_ID par l'ID de la VM.

      Pour en savoir plus sur toutes les options autorisées, consultez la documentation AWS.

      Il est possible d'utiliser un proxy pour se connecter à une VM à l'aide de l'option SSH ProxyCommand. Par exemple, pour utiliser un proxy socks5 existant sur le port PROXY_PORT, exécutez la commande suivante :

      ./mcdc_collect_aws_guest_ssh.sh --region REGION -a '-o ProxyCommand=nc -X 5 -x 127.0.0.1:PROXY_PORT %h %p'
      

      Remplacez PROXY_PORT par le numéro de port.

  4. Si vous avez ajusté les règles entrantes à l'étape 1, envisagez d'annuler vos modifications.

Générer un rapport d'évaluation hors connexion

  • Après que toutes les données ont été collectées, vous pouvez générer un rapport HTML détaillé :

    ./mcdc report --format html --full > REPORT_NAME.html
     

(Avancé) Modifier les scripts en fonction de vos besoins

Il se peut qu'aucun des scripts ne réponde exactement à vos besoins. Par exemple, vous ne disposez peut-être pas de l'agent SSM ou de Instance Connect sur certaines de vos VM.

Dans ce cas, vous disposez généralement d'un moyen standard de vous connecter à vos machines. Nous vous recommandons d'écrire des scripts vous permettant d'orchestrer ces méthodes à grande échelle. Dans certains cas, vous devrez peut-être écrire ces scripts de toutes pièces, mais dans d'autres, vous pourrez peut-être les modifier.

Par exemple, vous pouvez modifier le script de collecte SSH pour utiliser des adresses IP privées au lieu d'adresses IP publiques.

Les scripts contiennent de nombreux commentaires pour faciliter leur compréhension.

(Avancé) Écrire entièrement un script d'orchestration

Pour orchestrer la découverte d'invités et la collecte de données à grande échelle, procédez comme suit :

  1. Identifiez toutes les VM à partir desquelles vous souhaitez effectuer la collecte.
  2. Importez le script de collecte d'invités sur chaque VM. Les VM Linux et Windows nécessitent des scripts de collecte d'invités différents.
  3. Exécutez le script de collecte d'invités sur chaque VM.
  4. Téléchargez l'artefact créé à partir de chaque VM.
  5. Importez le script de collecte d'invités téléchargé dans la CLI mcdc.

Bien qu'il soit souvent nécessaire d'écrire une grande partie de ce code en partant de zéro, certains éléments de base des exemples de scripts peuvent vous aider à effectuer certaines de ces tâches. Par exemple :

Étapes suivantes