Mengelompokkan penemuan tamu dan pengumpulan data


Tutorial ini akan memandu Anda melalui proses penemuan dan pengumpulan data pada batch instance virtual machine (VM) VMware menggunakan penemuan tamu CLI klien penemuan Migration Center. Batch VM yang besar mungkin sulit dipantau dan dipecahkan masalahnya. Sebaiknya gabungkan ke dalam grup yang lebih kecil,kurang dari 1.000.

Tujuan

Dalam tutorial ini, Anda akan mempelajari cara:

  • Download mcdc CLI.
  • Menjalankan penemuan inventaris VMWare.
  • Buat file CSV dengan semua VM yang ditemukan.
  • Pisahkan file CSV menjadi beberapa file CSV yang berisi subkumpulan VM.
  • Menjalankan penemuan tamu di semua VM dalam file CSV.
  • Buat laporan penilaian offline.

Biaya

Tutorial ini menggunakan resource lokal dan tidak menimbulkan biaya Google Cloud.

Sebelum memulai

  1. Siapkan komputer Linux untuk menginstal dan menjalankan mcdc CLI. Komputer Linux harus memiliki persyaratan minimum berikut:

    • glibc versi 2.25 atau yang lebih baru
    • RAM 4 GB dan kapasitas disk 10 GB
    • Konektivitas jaringan ke host vCenter dan ESX
  2. Pastikan Anda memiliki pengguna vSphere dengan izin yang diperlukan:

    • Hak istimewa baca ke VM
    • Hak istimewa baca ke semua host ESX
    • Modifikasi operasi tamu
    • Eksekusi program operasi tamu
    • Kueri operasi tamu

Mendownload mcdc CLI

  1. Hubungkan ke mesin Linux:
    ssh MACHINE_IP

    Ganti MACHINE_IP dengan alamat IP mesin Linux Anda.

  2. Download mcdc CLI versi terbaru dan setel agar dapat dijalankan:
      curl -O "https://mcdc-release.storage.googleapis.com/$(curl -s https://mcdc-release.storage.googleapis.com/latest)/mcdc"
      chmod +x mcdc
  3. Tambahkan CLI mcdc ke jalur shell Anda:
    PATH=$PATH:`pwd`

Melakukan penemuan inventaris VMware

  • Jalankan penemuan inventaris:

    ./mcdc discover vsphere -u USERNAME --url https://VSPHERE_URL
    

    Ganti kode berikut:

    • USERNAME: nama pengguna vCenter Anda
    • VSPHERE_URL: URL untuk instance vCenter Server atau vSphere Client

    Output perintah discover terlihat seperti berikut:

    [+] Found 528 VMs
    Collecting data...
    528 / 528 [---------------------------------------------------] 100.00% 5 p/s
    [✓] Collection completed.
    

Membuat file CSV dengan semua VM yang ditemukan

Untuk membuat file CSV, gunakan skrip export dari repositori Migrate to Containers di GitHub.


vms=$(mcdc report --format csv | tail -n +2 | awk -F ',' '{; print $2";"$3";"$4";;;"}')
printf "%s\n" "Name;Platform VM ID;OS Family;IP;USERNAME;PASSWORD"
printf "%s\n" "$vms"

Skrip menggunakan perintah report untuk membuat file CSV yang berisi semua VM yang ditemukan pada langkah sebelumnya.

  1. Download skrip:

    curl -O https://raw.githubusercontent.com/GoogleCloudPlatform/migrate-to-containers/main/scripts/mcdc/mcdc_discovery_export_guest_tools.sh
    chmod +x mcdc_discovery_export_guest_tools.sh
    
  2. Jalankan skrip dan simpan output ke file:

    ./mcdc_discovery_export_guest_tools.sh > VMS_CSV_FILE
    

    Ganti VMS_CSV_FILE dengan nama yang Anda inginkan untuk file CSV.

Membagi file CSV menjadi beberapa file CSV dengan subset VM

Untuk membagi file CSV besar menjadi file CSV yang lebih kecil, gunakan skrip splitter dari repositori Migrate to Containers di GitHub.

tail -n +2 $1 | split -d -l $num_of_lines - $2
for file in $2*
do
    head -n 1 $1 > tmp_file
    cat "$file" >> tmp_file
    mv -f tmp_file "$file"
done
  1. Download skrip:

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

    ./csv_splitter.sh VMS_CSV_FILE CSV_FILES_PREFIX LINES_PER_FILE VMS_CSV_FILE CSV_FILES_PREFIX
    

    Ganti kode berikut:

    • VMS_CSV_FILE: file CSV input yang akan dibagi.
    • CSV_FILES_PREFIX: awalan untuk file CSV yang dihasilkan.
    • LINES_PER_FILE: jumlah baris per file CSV yang dihasilkan. Nilai defaultnya adalah 10.

    Skrip ini menghasilkan berbagai file CSV.

  3. Lihat daftar file CSV yang dihasilkan:

    ls -lrt CSV_FILES_PREFIX*
    

Menjalankan penemuan tamu di semua VM dalam file CSV

Untuk menjalankan penemuan tamu untuk VM dalam file CSV, gunakan skrip collection dari repositori GitHub Migrate to Containers.

Ulangi langkah ini untuk setiap file CSV yang dibuat di langkah sebelumnya.


url_regex='^https?://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]\.[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]$'

read -r -p "CSV file name: " CSV_FILE
if [[ ! -r "$CSV_FILE" ]]; then
    echo "The file $CSV_FILE does not exist or can not be accessed."
    exit 1
fi

read -r -p "vSphere URL: " VSPHERE_URL
if ! [[ $VSPHERE_URL =~ $url_regex ]]; then
    echo "vSphere URL $VSPHERE_URL IS not a valid URL"
    exit 1
fi
read -r -p "vSphere username: " VSPHERE_USER
read -r -s -p "vSphere password: " VSPHERE_PASSWORD
echo ""
read -r -p "Default username: " DEFAULT_USER
read -r -s -p "Default password: " DEFAULT_PASSWORD

echo ""

# CSV fields
#NAME;PLATFORM VM ID;OS;IP;USERNAME;PASSWORD
while IFS=";" read -r vm_name vm_id os ip username password
do
   if [ -z "$username" ]
    then
      username=$DEFAULT_USER
    fi
    if [ -z "$password" ]
    then
          password=$DEFAULT_PASSWORD
    fi

    if [ ! -z "$vm_id" ]
    then
      # Note that the below only works for VMWare VMs
      # vm_id after the last slash if prefixed by vSphere IP
      mod_vm_id=$(echo "$vm_id" | sed 's/.*\///')
      mcdc discover vsphere guest --url $VSPHERE_URL -u $VSPHERE_USER -p $VSPHERE_PASSWORD --vm-user $username --vm-password $password $mod_vm_id
    else
      echo "Skipping VM: $vm_name because it has no VM ID"
    fi
 done < <(tail -n +1 $CSV_FILE)

Skrip menggunakan perintah discover vsphere guest untuk mengupload dan menjalankan skrip pengumpulan tamu di VM.

Sebaiknya jalankan skrip ini di latar belakang dan arahkan output ke file log. Untuk melakukannya, Anda perlu membuat file teks yang diteruskan sebagai input ke skrip.

  1. Buat file teks:

    cat <<EOF >> INPUT_FILE
    CSV_FILES_PREFIXCSV_FILE_SUFFIX
    VSPHERE_URL
    VSPHERE_USER
    VSPHERE_PASSWORD
    VM_USER
    VM_PASSWORD
    EOF
    

    Ganti kode berikut:

    • INPUT_FILE: nama file input
    • CSV_FILES_PREFIX: Awalan nama file CSV
    • CSV_FILE_SUFFIX: Akhiran nama file CSV
    • VSPHERE_URL: URL untuk instance vCenter Server atau vSphere Client
    • VSPHERE_USER: Nama pengguna vCenter
    • VSPHERE_PASSWORD: Sandi vCenter
    • VM_USER: Nama pengguna VM
    • VM_PASSWORD: Sandi VM
  2. Jalankan skrip pengumpulan tamu:

    nohup ./mcdc_collect_vms_guest_tools.sh <INPUT_FILE > /tmp/mcdc.out 2>&1 &
    
  3. Ulangi langkah 1 dan 2 untuk setiap file CSV yang dihasilkan di langkah sebelumnya.

Membuat laporan penilaian offline

  • Setelah semua data dikumpulkan, Anda dapat membuat laporan HTML mendetail:

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

Langkah selanjutnya