Raccogliere i dati guest dalle VM EC2 per la valutazione offline

Questo tutorial illustra il processo di rilevamento e raccolta dei dati sulle istanze di macchine virtuali (VM) EC2, da utilizzare per la valutazione tecnica offline utilizzando l'interfaccia a riga di comando del client predittivo di Migration Center.

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 l'ultima versione della CLI mcdc 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 la CLI 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 tue VM EC2.

    La CLI mcdc ti chiede l'ID chiave di accesso e la chiave di accesso segreta.

    L'output del comando discover è simile al seguente:

    Collected 166 VMs
    [✓] Collection completed.
    

Eseguire la scoperta 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 con l'agente SSM installato. 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 tutte le VM abbiano un ruolo IAM che consenta la connessione utilizzando Session Manager. Per saperne di più, consulta la documentazione di AWS.

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

  3. Esegui il rilevamento degli ospiti utilizzando lo script di raccolta degli ospiti SSM dal 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 tue VM EC2.

    Tutti i flag vengono passati direttamente a aws ssm describe-instance-information. Per raccogliere i dati da una VM specifica, esegui questo comando:

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

    Sostituisci VM_ID con l'ID 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 guest sulle VM Linux. Si connette all'indirizzo IP pubblico di ogni VM. Tuttavia, la modifica dello script dovrebbe essere semplice. Ad esempio, per connettersi all'indirizzo IP privato.

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

  1. Assicurati di disporre dell'accesso di rete alle VM. Potresti dover modificare le regole in entrata per i tuoi gruppi di sicurezza o utilizzare un proxy per connetterti.

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

  3. Esegui il rilevamento degli ospiti utilizzando lo script di raccolta degli ospiti SSH dal 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 tue VM EC2.

      Qualsiasi flag denominato -a o --ssh-arg viene passato direttamente a SSH. Per disattivare l'autenticazione rigorosa della chiave host, esegui questo 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 raccogliere i dati da una VM specifica, esegui questo comando:

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

      Sostituisci VM_ID con l'ID VM.

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

      È possibile utilizzare un proxy per connettersi a una VM utilizzando l'opzione SSH ProxyCommand. 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, valuta la possibilità di ripristinare 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 dei due script soddisfi esattamente le tue esigenze. Ad esempio, potresti non aver installato l'agente SSM o Instance Connect su alcune delle tue VM.

In questi casi, in genere hai un modo standard per connetterti alle tue 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 zero, mentre 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 ampiamente commentati per renderli facili da comprendere.

(Avanzato) Scrivi 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 guest diversi.
  3. Esegui lo script di raccolta ospite su ogni VM.
  4. Scarica l'artefatto creato da ogni VM.
  5. Importa lo script di raccolta degli ospiti scaricato nella CLI mcdc.

Anche se spesso devi scrivere gran parte di questo codice da zero, negli script di esempio sono presenti alcuni blocchi di base utili che possono aiutarti con alcune di queste attività. Ad esempio: