Mengelompokkan penemuan tamu dan pengumpulan data


Tutorial ini memandu Anda dalam proses menemukan dan mengumpulkan data pada sekumpulan instance virtual machine (VM) VMware menggunakan penemuan tamu CLI klien penemuan di Pusat Migrasi. Batch VM dalam jumlah besar mungkin sulit untuk dipantau dan dipecahkan masalahnya. Sebaiknya kelompokkan ke dalam grup yang lebih kecil,yang jumlahnya kurang dari 1.000.

Tujuan

Dalam tutorial ini, Anda akan mempelajari cara:

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

Biaya

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

Sebelum memulai

  1. Siapkan mesin Linux untuk menginstal dan menjalankan CLI mcdc. Mesin 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
    • Membaca hak istimewa untuk semua host ESX
    • Modifikasi operasi tamu
    • Eksekusi program operasi tamu
    • Kueri operasi tamu

Mendownload CLI mcdc

  1. Hubungkan ke mesin Linux:
    ssh MACHINE_IP

    Ganti MACHINE_IP dengan alamat IP mesin Linux Anda.

  2. Download CLI mcdc versi terbaru dan setel agar dapat dieksekusi:
      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 Server vCenter Anda atau Klien vSphere

    Output perintah discover akan terlihat seperti berikut:

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

Buat 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 ini menggunakan perintah report untuk menghasilkan file CSV yang berisi semua VM yang ditemukan di 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 dipisahkan.
    • 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 pada 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 ini menggunakan perintah discover vsphere guest untuk mengupload dan menjalankan skrip koleksi tamu di VM.

Sebaiknya jalankan skrip ini di latar belakang dan arahkan outputnya ke file log. Untuk melakukannya, Anda harus 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 Server vCenter Anda atau Klien vSphere
    • 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 dibuat pada 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