Hướng dẫn cấu hình VMware Auto Deploy: Triển khai ESXi qua PXE không cần ổ cứng

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

Quick start: Dựng ESXi Stateless với Auto Deploy trong 5 phút

Chỉ cần vCenter và một cụm DHCP/TFTP sẵn sàng, bạn hoàn toàn có thể kéo một server trắng boot thẳng ESXi qua mạng mà không cần chạm tay vào ổ đĩa vật lý.

Bước 1: Kích hoạt Auto Deploy Service trên vCenter

Đăng nhập vCenter UI > Administration > System Configuration > Services. Tìm service Auto Deploy, chuyển Startup Type sang Automatic rồi bấm Start.

Bước 2: Tạo Image Profile và Deploy Rule bằng PowerCLI

Mở PowerShell trên máy quản trị, kết nối tới vCenter và nạp gói ESXi Offline Bundle tải từ VMware Customer Connect:

# Kết nối vCenter Server
Connect-VIServer -Server vcenter.lab.local -User [email protected] -Password 'YourSecretPassword!'

# Nạp ESXi Offline Bundle
Add-EsxSoftwareDepot -DepotUrl "C:\Depot\VMware-ESXi-8.0U2-depot.zip"

# Kiểm tra danh sách Profile có trong Depot
Get-EsxImageProfile | Select-Object Name

# Tạo Deploy Rule gán Image Profile cho dải IP chỉ định
New-DeployRule -Name "Production-ESXi-Boot" `
  -Item "ESXi-8.0U2-standard" `
  -Pattern "ipv4=192.168.10.100-192.168.10.150"

# Kích hoạt Deploy Rule
Add-DeployRule -DeployRule "Production-ESXi-Boot"

Bước 3: Cấu hình DHCP Option 66 & 67 trỏ tới TFTP Boot File

Vào tab vCenter > Auto Deploy, tải file TFTP Boot Zip và giải nén vào thư mục root của TFTP Server. Tiếp theo, khai báo PXE trên DHCP:

# Cấu hình mẫu trên /etc/dhcp/dhcpd.conf (Linux DHCP)
subnet 192.168.10.0 netmask 255.255.255.0 {
    range 192.168.10.100 192.168.10.150;
    option routers 192.168.10.1;
    option domain-name-servers 192.168.10.2;
    
    # Trỏ đến TFTP Server và bootloader của Auto Deploy
    next-server 192.168.10.5;
    filename "undionly.kpxe.vmw-hardwired"; # Dùng cho BIOS Legacy
    # filename "snponly64.efi.vmw-hardwired"; # Dùng cho UEFI Boot
}

Giờ hãy bật nguồn máy chủ vật lý và chọn Boot qua Network. Server sẽ nhận IP, kéo bootloader từ TFTP, load Image từ vCenter và tự gia nhập cluster trong khoảng 2–3 phút.

Kiến trúc và luồng hoạt động của VMware Auto Deploy

Trước đây, mỗi lần nâng cấp bản vá cho 40 node Dell PowerEdge R740, team mình mất cả ngày mount ISO qua iDRAC. Với Auto Deploy, toàn bộ máy chủ chạy ở chế độ Stateless — hệ điều hành nạp thẳng vào RAM. Bạn không cần cắm USB, thẻ SD hay tốn tiền mua ổ SAS/SATA làm OS drive cho từng máy.

1. Ba trụ cột cốt lõi

  • Auto Deploy Server: Dịch vụ tích hợp sẵn trên vCenter Server Appliance (VCSA). Nó nhận request HTTP boot từ máy chủ, đối chiếu rule rồi phân phối image phù hợp.
  • Image Builder: Công cụ đóng gói ESXi Image Profile. Nhờ đó, bạn dễ dàng tích hợp driver card mạng Broadcom/Mellanox hoặc controller RAID đặc thù của hãng trước khi deploy.
  • Host Profile: Bản thiết kế cấu hình chuẩn (vSwitch, VLAN, datastore, NTP, tài khoản root). vCenter sẽ tự động áp profile này ngay khi host boot xong.

2. Luồng boot PXE Stateless diễn ra như thế nào?

  1. PXE Broadcast: Máy chủ bật nguồn, card mạng gửi gói tin DHCP Discover.
  2. Cấp thông số Boot: DHCP Server trả về IP kèm địa chỉ TFTP (Option 66) và tên bootloader (Option 67).
  3. Tải iPXE: Máy chủ kéo file bootloader từ TFTP Server.
  4. HTTP Handshake: Bootloader gửi HTTP request trực tiếp tới vCenter Auto Deploy.
  5. Khớp Deploy Rule: Auto Deploy kiểm tra MAC address, IP hoặc model phần cứng để chọn đúng Image Profile và Host Profile.
  6. Streaming & Gia nhập: ESXi Image (khoảng 350MB–500MB) truyền thẳng vào RAM. vCenter tự áp Host Profile và đưa host vào đúng cluster chỉ định.

Cấu hình nâng cao: Stateless Caching và Stateful Install

Chạy Stateless thuần túy rất tiện khi nâng cấp, nhưng có một điểm yếu chết người: Nếu mạng quản trị hoặc vCenter gặp sự cố khi server khởi động lại, host sẽ không thể nạp OS. Do đó trên production, bạn nên cân nhắc 2 phương án dự phòng dưới đây.

1. Stateless Caching (Khuyên dùng cho Enterprise)

Máy chủ vẫn ưu tiên boot qua Auto Deploy từ vCenter. Tuy nhiên, nó sẽ lưu một bản cache image và cấu hình vào ổ đĩa nội bộ hoặc USB. Nếu vCenter offline lúc máy khởi động, host tự chuyển sang đọc cache cục bộ và vận hành bình thường.

# Gán Host Profile và Cluster vào Deploy Rule cùng chính sách Stateless Caching
$cluster = Get-Cluster "Production-Cluster-01"
$profile = Get-VMHostProfile "Gold-Standard-Profile"

New-DeployRule -Name "Production-Stateless-Cache" `
  -Item "ESXi-8.0U2-standard", $cluster, $profile `
  -Pattern "ipv4=192.168.10.100-192.168.10.150"

Add-DeployRule -DeployRule "Production-Stateless-Cache"

Trong Host Profile, bạn chỉ cần bật mục System Image Cache Configuration và tick chọn Enable stateless caching on the host.

2. Stateful Install

Ở chế độ này, Auto Deploy chỉ đóng vai trò bộ cài tự động cho lần đầu tiên. Sau khi nhận image qua PXE, ESXi sẽ được cài chết vào ổ cứng máy chủ. Những lần khởi động tiếp theo, máy boot thẳng từ ổ cứng như cách cài đặt truyền thống.

Kinh nghiệm thực chiến sau 6 tháng vận hành production

1. Xử lý Boot Storm khi toàn datacenter khởi động lại

Mất điện diện rộng là bài test khắc nghiệt nhất. Khi 40 server cùng khởi động và đồng loạt kéo image 400MB, lưu lượng mạng quản trị sẽ vọt lên hơn 16GB trong vài phút, dễ làm nghẽn switch và nghẽn CPU của VCSA.

Giải pháp hiệu quả:

  • Bật tính năng Reverse Proxy Caching cho Auto Deploy nếu có nhiều branch/chi nhánh.
  • Thiết lập độ trễ khởi động (Power-On Delay) so le nhau từ 30–60 giây trong BIOS/BMC của từng node.

2. Bắt buộc cấu hình Remote Syslog và Core Dump

Do chạy trên RAM, toàn bộ log sẽ mất trắng nếu server bị lỗi màn hình tím (PSOD) hoặc reboot đột ngột. Hãy cấu hình đẩy log về Syslog Server và setup Network Core Dump ngay trong Host Profile:

# Kiểm tra và cấu hình Syslog tập trung qua ESXi CLI
esxcli system syslog config get
esxcli system syslog config set --loghost='tcp://syslog.lab.local:514'
esxcli system syslog reload

# Cấu hình Network Core Dump Server
esxcli system coredump network set --interface-name vmk0 --server-ipv4 192.168.10.5 --server-port 6500
esxcli system coredump network set --enable true

3. Kiểm tra độ lệch cấu hình (Compliance Check) định kỳ

Mỗi khi thay đổi Host Profile (như cập nhật NTP server hay chỉnh subnet vSwitch), hãy chạy lệnh quét compliance trên toàn cụm để phát hiện host nào bị lệch cấu hình (configuration drift):

# Quét compliance toàn bộ host trong cluster
$hosts = Get-Cluster "Production-Cluster-01" | Get-VMHost
$compliance = Test-VMHostProfileCompliance -VMHost $hosts

# Lọc ra các host bị lệch cấu hình
$compliance | Where-Object { $_.Status -ne "Compliant" } | Select-Object VMHost, Status
Share: