Executar uma descoberta de convidados

Este documento descreve as etapas para executar os diferentes métodos de descoberta de convidados que a CLI mcdc oferece.

Visão geral

Com a descoberta de convidados, é possível analisar e coletar dados sobre os aplicativos em execução nas suas máquinas, incluindo instâncias de máquina virtual (VM) e servidores físicos. Ele também coleta dados sobre a configuração da máquina, hardware, rede, além de arquivos, serviços e processos abertos.

Para máquinas em execução em plataformas que não têm suporte à descoberta de inventário da CLI do discovery client da Central de migração, como VMs em execução no Azure ou máquinas em execução no local, bem como para uma avaliação completa de VMs em execução no VMware e na AWS, é possível executar uma descoberta de convidado. A descoberta de convidados usa um script de coleta de convidados para coletar dados sobre a máquina e grava esses dados em um arquivo tar de coleta de convidados para máquinas Linux ou em um arquivo zip para máquinas Windows.

A máquina que hospeda a CLI mcdc faz upload do script para a máquina de destino, executa e faz o download dos resultados. É possível executar o script localmente na máquina de destino ou remotamente. Dependendo da sua infraestrutura, você pode usar a CLI mcdc das seguintes maneiras:

  • Para VMs do Linux e do Windows implantadas no VMware, a CLI mcdc oferece suporte à execução remota com o comando discover vsphere.
  • Para máquinas Linux acessíveis pela CLI mcdc, você pode realizar uma descoberta remota usando SSH com o comando discover ssh.
  • Para máquinas Windows acessíveis pela CLI mcdc, é possível fazer uma descoberta remota usando a Instrumentação de Gerenciamento do Windows (WMI) com o comando discover wmi.
  • Para máquinas Linux e Windows sem conexão com a CLI mcdc, é possível baixar e executar os scripts de coleta de convidados localmente e importar manualmente os dados coletados para a máquina que hospeda a CLI mcdc.

O script de coleta de convidados executa uma série de comandos para coletar informações sobre a máquina de origem e também coleta informações de vários arquivos na máquina.

Antes de começar

  1. Confira os requisitos para fazer o download e executar a CLI do mcdc.
  2. Revise os requisitos para fazer o download e executar os scripts de coleta de convidados.
  3. Conclua as etapas para fazer o download da CLI mcdc.

Coletar dados remotamente usando ferramentas VMware

Para VMs hospedadas no vSphere, a CLI do mcdc pode usar as ferramentas do VMware para implantar e executar os scripts de coleta remotamente nas VMs do Linux e do Windows. Ao usar as ferramentas VMware, a ferramenta CLI mcdc faz o seguinte:

  • Faz o upload do script de coleta para a VM.
  • Executa o script na VM.
  • Faz o download e importa os resultados.

Dois conjuntos de credenciais são necessários para coletar dados remotamente:

  • O nome de usuário do servidor vCenter transmitido à CLI mcdc para se conectar ao vSphere, que precisa ter os seguintes privilégios na VM:
    • Modificar operação de convidado
    • Executar programa de operação de convidado
    • Consultas de operação de convidado
  • Credenciais do usuário da VM:
    • No Windows, você precisa ter privilégios de administrador.
    • No Linux, o acesso raiz não é obrigatório, mas permite que a CLI mcdc colete os dados necessários para uma avaliação completa.

Para coletar dados usando as ferramentas do VMware, siga estas etapas:

  1. Faça login na VM do Linux que hospeda a CLI mcdc.
  2. Mude para o diretório em que você fez o download da CLI mcdc.
  3. Confira se a VM está ligada.
  4. Execute a descoberta de convidado:

    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

    Substitua:

    • VCENTER_USER: o usuário do servidor vCenter
    • VM_USER: o usuário da VM
    • VM_ID: o nome da VM ou MOREF
  5. Quando solicitado, insira a senha de VCENTER_USER e VM_USER.

Para coletar dados de várias VMs do vSphere em paralelo usando ferramentas do VMware, siga estas etapas:

  1. Faça login na VM do Linux que hospeda a CLI mcdc.
  2. Mude para o diretório em que você fez o download da CLI mcdc.
  3. Verifique se todas as VMs estão ligadas.
  4. Execute a descoberta de convidado:

    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

    Substitua TIMEOUT_IN_SECONDS pelo tempo limite em segundos.

    Opcionalmente, limite a descoberta apenas a VMs do Windows ou Linux usando a flag --os-family ou mude o nível de paralelismo usando a flag --max-parallelism.

  5. Quando solicitado, insira a senha de VCENTER_USER e VM_USER.

  6. Também é possível definir o escopo da descoberta para VMs específicas usando a flag --path, conforme descrito para o VMware em Executar uma descoberta de inventário.

É possível exportar e avaliar esses dados coletados on-line na Central de migração ou executar uma avaliação off-line.

Coletar dados remotamente por SSH

Se a máquina que hospeda a CLI mcdc tiver acesso SSH à máquina Linux de destino (máquinas Windows não são compatíveis), a CLI mcdc poderá se conectar à máquina de destino por SSH para coletar dados.

Ao usar o SSH, a CLI mcdc faz o seguinte:

  1. Faz upload do script de coleta para a máquina.
  2. Executa o script na máquina com as credenciais de usuário da máquina passadas para a CLI mcdc.

  3. Faz o download e importa os resultados.

Modos de SSH compatíveis

Se você estiver usando a CLI mcdc em uma máquina Linux, é possível usar dois modos para executar o SSH:

  • Padrão:usa o binário ssh e as configurações na máquina da CLI mcdc. O modo padrão pode usar os arquivos de configuração SSH local por padrão, como ~/.ssh/config e ~/.ssh/known_hosts, da estação de trabalho que o hospeda.

    Digite a senha quando solicitada ou use sshpass para passar a senha ou a senha longa do arquivo de chave privada na linha de comando. Exemplo:

    sshpass -p password mcdc discover ssh IP_ADDRESS
    

    Substitua IP_ADDRESS pelo endereço IP da máquina.

  • Incorporado:usa a biblioteca SSH integrada. Esse modo permite que você use o cliente SSH incorporado se o modo padrão não funcionar no seu ambiente. No entanto, ele não usa os arquivos de configuração do SSH local por padrão. É possível usar a flag -i para especificar um arquivo de chave privada SSH.

Se você estiver usando a CLI mcdc em uma máquina Windows, apenas o modo incorporado é compatível.

Executar a coleção

Para coletar dados por SSH, siga estas etapas:

  1. Faça login na máquina Linux que hospeda a CLI mcdc.
  2. Mude para o diretório em que você fez o download da CLI mcdc.
  3. Coletar dados.

    Linux

    ./mcdc discover ssh IP_HOSTNAME

    Windows

    mcdc.exe discover ssh IP_HOSTNAME

    Para descobrir e coletar recursos de banco de dados, use a flag --db-engine:

    Linux

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

    Windows

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

    Substitua:

    • IP_HOSTNAME: o nome do host IP da máquina.
    • DB_ENGINE: o mecanismo de banco de dados a ser coletado. Os valores aceitos são sqlserver, mysql, postgresql.
  4. O arquivo de chave privada SSH do usuário que invoca a CLI mcdc é usado para autenticação SSH.

    Quando solicitado, digite o nome de usuário de uma conta na máquina Linux. O script de coleta é executado usando essas credenciais. Se a chave privada SSH do usuário que invoca a CLI mcdc não conseguir autenticar na máquina com o nome de usuário, também será solicitada uma senha.

Outros cenários ao usar SSH

Confira os seguintes cenários em que talvez seja necessário modificar o comando:

  • Para especificar o usuário da máquina com o modo padrão, use a flag -u:

    Linux

    ./mcdc discover ssh -u USER IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER IP_HOSTNAME

    Substitua USER pelo usuário da máquina.

    Quando solicitado, digite a senha do usuário.

  • Para especificar o modo detalhado, use a flag -v:

    Linux

    ./mcdc discover ssh -u USER -v IP_HOSTNAME

    Windows

    mcdc.exe discover ssh -u USER -v IP_HOSTNAME

  • Para especificar o arquivo de chave privada SSH, use a flag -i. Por exemplo, para especificar .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

  • Para especificar a senha na linha de comando, use o modo incorporado:

    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

    Como a forma incorporada do comando não usa os arquivos de configuração SSH locais por padrão, verifique se o usuário especificado no comando pode acessar a máquina por SSH e tem privilégios nela para executar o script de coleta.

  • Para especificar o arquivo de chave privada SSH com o modo incorporado, use a flag -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

  • O comando mcdc da CLI permite especificar a maioria das flags do SSH. Em seguida, ele transmite essas flags para o comando ssh usando a flag -a ou --ssh-args. Por exemplo, para usar um 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

É possível exportar e avaliar esses dados coletados on-line na Central de migração ou executar uma avaliação off-line.

Coletar dados remotamente por WMI

Se quiser fazer uma descoberta de convidado em uma máquina Windows de destino com suporte do WMI, use o comando mcdc discover wmi na máquina Windows que hospeda a CLI mcdc. A coleta de WMI é compatível somente na versão do Windows da CLI mcdc.

Ao usar o WMI, a CLI mcdc faz o seguinte:

  1. Faz upload do script de coleta para a máquina.
  2. Executa o script na máquina com as credenciais de usuário da máquina passadas para a CLI mcdc.

  3. Faz o download e importa os resultados.

Para coletar dados por WMI, siga estas etapas:

  1. Faça login na máquina Windows que hospeda a CLI do mcdc.
  2. Mude para o diretório em que você fez o download da CLI mcdc.
  3. Coletar dados:

    mcdc.exe discover wmi IP_HOSTNAME
    

    Substitua IP_HOSTNAME pelo nome do host IP da máquina.

  4. Insira suas credenciais quando solicitado.

Coletar dados em uma máquina Linux individual

Para realizar uma coleta de convidado localmente em uma máquina Linux, execute o script mcdc-linux-collect.sh. Em seguida, copie o arquivo tar gerado pelo script para a máquina que hospeda a CLI mcdc e importe-o com o comando discover import.

Normalmente, o script é executado especificando a opção sudo. Opcionalmente, é possível executar o script usando os privilégios do usuário que está executando a CLI mcdc. No entanto, talvez o script não consiga coletar todos os dados necessários.

  1. Faça login na sua máquina.
  2. Mude para o diretório em que você fez o download do script de coleta de convidados.
  3. Execute o script de coleta na máquina:

    sudo ./mcdc-linux-collect.sh
    

    O script gera um arquivo .tar chamado mcdc-collect-MACHINE_NAME-TIMESTAMP.tar para o diretório atual. O carimbo de data/hora está no formato YYYY-MM-DD-hh-mm.

    Clique para ver o formato do arquivo tar de coleta de convidados

    O arquivo tar tem o seguinte formato:

    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
     

    Também é possível transmitir o argumento --output e especificar o caminho onde você quer salvar o arquivo tar.

  4. Copie os dados coletados da máquina de destino para a máquina host.

  5. Importe os dados coletados na máquina host:

    Linux

    ./mcdc discover import PATH_TO_TAR

    Windows

    mcdc.exe discover import PATH_TO_TAR

    Substitua PATH_TO_TAR pelo caminho para o arquivo tar.

É possível exportar e avaliar esses dados coletados on-line na Central de migração ou executar uma avaliação off-line.

Coletar dados em uma máquina Windows individual

Para realizar uma coleta de convidados localmente em uma máquina Windows, execute o script mcdc-windows-collect.ps1. Em seguida, copie o arquivo ZIP gerado pelo script para a máquina que hospeda a CLI mcdc e importe-o com o comando discover import.

  1. Faça login na sua máquina.
  2. Abra o PowerShell usando a opção Executar como administrador.
  3. Mude para o diretório em que você fez o download da CLI mcdc.
  4. Execute o script de coleta na máquina:

    powershell -ExecutionPolicy ByPass -File .\mcdc-windows-collect.ps1
    
  5. O script gera um arquivo .zip chamado mcdc-collect-MACHINE_NAME-TIMESTAMP.zip para o diretório atual.

    Se quiser, inclua um caminho de saída para especificar um local diferente:

    .\mcdc-windows-collect.ps1 PATH_FOR_OUTPUT.zip
    
  6. Importe os dados coletados na máquina host:

    Linux

    ./mcdc discover import PATH_TO_TAR

    Windows

    mcdc.exe discover import PATH_TO_TAR

    Substitua PATH_TO_TAR pelo caminho para o arquivo tar.

É possível exportar os dados coletados e avaliá-los on-line na Central de migração ou executar uma avaliação off-line.

A seguir