Raccogliere i dati guest dalle VM EC2 per la valutazione offline


Questo tutorial illustra la procedura per rilevare e raccogliere i dati sulle istanze di macchine virtuali (VM) EC2 da utilizzare per la valutazione tecnica offline utilizzando l'interfaccia a riga di comando del client di rilevamento del Migration Center.

Obiettivi

In questo tutorial imparerai a:

  • Scarica l'interfaccia a riga di comando mcdc per valutare le VM AWS EC2.
  • Esegui il rilevamento dell'inventario AWS EC2.
  • Raccogli informazioni a livello di guest su tutte le VM in una regione EC2 utilizzando AWS Session Manager o SSH.
  • Genera un report di valutazione offline.
  • (Avanzato) Modifica gli script in base alle tue esigenze.
  • (Avanzato) Scrivi uno script di orchestrazione da zero.

Costi

Questo tutorial non comporta costi per Google Cloud .

È improbabile che influisca sui costi AWS.

Prima di iniziare

I prerequisiti dipendono dal modo in cui ti connetti alle VM EC2.

Session Manager

  1. Prepara una macchina Linux per scaricare ed eseguire l'interfaccia a riga di comando mcdc. La macchina Linux deve avere i seguenti requisiti minimi:

    • Kernel Linux 2.6.23 o versioni successive
    • 4 GB di RAM e 10 GB di spazio su disco
    • Interfaccia a riga di comando AWS installata
  2. Assicurati che AWS CLI disponga delle seguenti autorizzazioni:

    • Può chiamare aws ssm describe-instance-information
    • Può chiamare aws ssm start-session

SSH

  1. Prepara una macchina Linux per scaricare ed eseguire l'interfaccia a riga di comando mcdc. La macchina Linux deve soddisfare i seguenti requisiti minimi:

    • Kernel Linux 2.6.23 o versioni successive
    • 4 GB di RAM e 10 GB di spazio su disco
    • Interfaccia a riga di comando AWS installata
    • Connettività di rete alle istanze EC2 (eventualmente tramite un proxy)
  2. Assicurati che AWS CLI disponga delle seguenti autorizzazioni:

Scarica l'interfaccia a riga di comando mcdc

  1. Connettiti alla macchina Linux:
    ssh MACHINE_IP

    Sostituisci MACHINE_IP con l'indirizzo IP della tua macchina Linux.

  2. Scarica la versione più recente del mcdc CLI e rendila eseguibile:
      curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc"
      chmod +x mcdc
  3. Aggiungi l'interfaccia a riga di comando mcdc al percorso della shell:
    PATH=$PATH:`pwd`

Esegui un rilevamento dell'inventario AWS

  • Esegui il rilevamento dell'inventario:

    ./mcdc discover aws -r REGION
    

    Sostituisci REGION con la regione delle VM EC2.

    L'interfaccia a riga di comando mcdc ti chiede di inserire il ID chiave di accesso e la chiave di accesso segreta.

    L'output del comando discover è simile al seguente:

    Collected 166 VMs
    [✓] Collection completed.
    

Esegui il rilevamento degli ospiti

Puoi eseguire il rilevamento degli ospiti utilizzando Session Manager o SSH.

Session Manager

Questo metodo utilizza AWS Systems Manager Session Manager per eseguire il rilevamento guest su tutte le VM su cui è installato l'agente SSM. L'agente SSM è installato per impostazione predefinita sulla maggior parte delle AMI fornite da Amazon e può essere installato manualmente su altre.

  1. Assicurati che a tutte le VM sia assegnato un ruolo IAM che consenta la connessione utilizzando Session Manager. Per ulteriori informazioni, consulta la documentazione di AWS.

  2. Assicurati che tutte le VM che vuoi raccogliere siano attive.

  3. Esegui la ricerca degli ospiti utilizzando lo script di raccolta degli ospiti ssm del repository Migrate to Containers su GitHub.

    a. Scarica lo 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. Esegui lo script e salva l'output in un file:

     ./mcdc_collect_aws_guest_ssm.sh --region REGION
    

    Sostituisci REGION con la regione delle VM EC2.

    Tutti i flag vengono passati direttamente a aws ssm describe-instance-information. Per eseguire il rilevamento da una VM specifica, esegui il seguente comando:

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

    Sostituisci VM_ID con l'ID della VM.

    Per ulteriori informazioni su tutti i flag consentiti per il comando describe-instance-information, consulta la documentazione di AWS.

SSH

Questo metodo utilizza SSH per eseguire il rilevamento degli ospiti sulle VM Linux. Si connette all'indirizzo IP pubblico di ogni VM. Tuttavia, la modifica dello script dovrebbe essere semplice. Ad esempio, per connetterti all'indirizzo IP privato.

Lo script utilizza EC2 Instance Connect per l'autenticazione. Instance Connect è disponibile solo sulle VM Amazon Linux e Ubuntu e potrebbe richiedere l'installazione. Tuttavia, dovrebbe essere semplice modificare lo script in modo da utilizzare un metodo di autenticazione alternativo, ad esempio l'autenticazione tramite password con sshpass o una chiave privata.

  1. Assicurati di avere accesso di rete alle VM. Potresti dover modificare le regole in entrata per i gruppi di sicurezza o utilizzare un proxy per la connessione.

  2. Assicurati che tutte le VM da cui vuoi raccogliere i dati siano attive.

  3. Esegui la ricerca degli ospiti utilizzando lo script di raccolta degli ospiti SSH del repository Migrate to Containers su GitHub.

    1. Scarica lo 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. Esegui lo script e salva l'output in un file:

      ./mcdc_collect_aws_guest_ssh.sh --region REGION
      

      Sostituisci REGION con la regione delle VM EC2.

      Qualsiasi flag denominato -a o --ssh-arg viene passato direttamente a SSH. Per disattivare l'autenticazione della chiave host rigorosa, esegui il seguente comando:

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

      Tutti gli altri flag vengono passati direttamente a aws ssh describe-instances. Per eseguire il rilevamento da una VM specifica, esegui il seguente comando:

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

      Sostituisci VM_ID con l'ID della VM.

      Per informazioni su tutti i flag consentiti, consulta la documentazione di AWS.

      È possibile utilizzare un proxy per connettersi a una VM utilizzando l'opzione SSHProxyCommand. Ad esempio, per utilizzare un proxy socks5 esistente sulla porta PROXY_PORT, esegui il seguente comando:

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

      Sostituisci PROXY_PORT con il numero di porta.

  4. Se hai modificato le regole in entrata nel passaggio 1, ti consigliamo di annullare le modifiche.

Generare un report di valutazione offline

  • Una volta raccolti tutti i dati, puoi generare un report HTML dettagliato:

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

(Avanzato) Modifica gli script in base alle tue esigenze

È possibile che nessuno degli script soddisfi esattamente le tue esigenze. Ad esempio, su alcune VM potrebbe non essere installato né l'agente SSM né Instance Connect.

In questi casi, di solito esiste un modo standard per connettersi alle macchine. Ti consigliamo di scrivere script che ti consentano di orchestrare questi metodi su larga scala. In alcuni casi potrebbe essere necessario scrivere questi script da scatto, ma in altri potresti essere in grado di modificare quelli esistenti.

Ad esempio, puoi modificare lo script di raccolta SSH per utilizzare indirizzi IP privati anziché pubblici.

Gli script sono molto commentati per facilitarne la comprensione.

(Avanzato) Scrivere uno script di orchestrazione da zero

Per orchestrare il rilevamento degli ospiti e la raccolta dei dati su larga scala:

  1. Identifica tutte le VM da cui vuoi raccogliere i dati.
  2. Carica lo script di raccolta ospite in ogni VM. Le VM Linux e Windows richiedono script di raccolta degli ospiti diversi.
  3. Esegui lo script di raccolta guest su ogni VM.
  4. Scarica l'elemento creato da ogni VM.
  5. Importa lo script di raccolta degli ospiti scaricato nella CLImcdc.

Spesso potresti dover scrivere gran parte di questo codice da zero, ma gli script di esempio contengono alcuni elementi utili che potrebbero aiutarti a svolgere alcune di queste attività. Ad esempio:

Passaggi successivi