Hạn chế của việc tạo máy ảo từ OVF / OVA sử dụng Web Client là bạn không thể sử dụng Template đang được lưu trữ sẵn trên Datastore. Nếu chỉ tạo 1 máy ảo thì không sao, nhưng nếu cần tạo cùng lúc 3-4 máy ảo để nghiên cứu thì sẽ rất mất thời gian thao tác và đợi web client upload file OVA / OVF lập lại 3-4 lần. Ngoài ra còn sẽ dễ bị lỗi timeout nếu file OVA quá lớn.
Để giải quyết vấn đề này, mình sẽ sử dụng công cụ OVFTool để tạo máy ảo từ file OVA Template đang được lưu trữ trong Datastore. Các thao tác được thực hiện trên máy tính chạy Windows 10, không cần phải truy cập vào web client của ESXi.
1. Cài đặt OVF Tool
OVF Tool là công cụ dòng lệnh của VMWare dùng để import và export các file OVF / OVA Template dành cho các sản phẩm ảo hoá của hãng.
Tải OVF Tool bản mới nhất ở đây: Open Virtualization Format Tool (ovftool) – VMware {code}
Bạn cần cài đặt OVF Tool lên máy tính để bàn, không phải cài đặt lên máy chủ ESXi. Mình tải bản OVF Tool dành cho Windows x64 và cài đặt vào máy.
Còn trên EndearvourOS / Arch Linux, mình cài đặt OVF Tool từ AUR
yay -S vmware-ovftool
2. Tải OVA về Datastore
Truy cập vào máy chủ ESXi bằng SSH và sử dụng lệnh wget
để tải OVA của Ubuntu về
cd /vmfs/volumes/datastore1
mkdir ISO
cd ISO
wget http://www.casler.org/wordpress/wp-content/uploads/2019/04/ddwrt-x86-20190327.ova
3. Lấy link của OVA
Mở trình duyệt web, truy cập vào địa chỉ: https://<ESXi-IP-Address>/folder
, đăng nhập bằng tài khoản mặc định.
Tìm đến thư mục chứa file ova vừa tải về, bấm chuột phải và chọn Copy link để sao chép link của file ova này.
Link của OVA sẽ có tương tự như sau: https://192.168.0.35/folder/ISO/ddwrt-x86-20190327.ova?dcPath=ha-datacenter&dsName=datastore1
Bạn sẽ dùng link này để tạo máy ảo mới bằng công cụ OVF Tool
4. Tạo máy ảo bằng OVF Tool
Mở Windows PowerShell, truy cập vào thư mục chứa công cụ OVF Tool: C:Program FilesVMWareVMWare OVF Tool
.
Kiểm tra thông số của file OVA bằng lệnh
.ovftool "https://192.168.0.35/folder/ISO/focal-server-cloudimg-amd64.ova?dcPath=ha-datacenter&dsName=datastore1"
Bạn cần nhập vào tài khoản & mật khẩu của ESXi. Thông số của máy ảo sẽ được trả về như dưới đây
Tạo máy ảo mới từ file OVA bằng ovftool với lệnh sau
.ovftool -ds=datastore1 "https://192.168.0.35/folder/ISO/ddwrt-x86-20190327.ova?dcPath=ha-datacenter&dsName=datastore1" "vi://192.168.0.35"
Chú ý:
- Thay giá trị
datastore1
của thông số-ds
bằng tên của datastore bạn muốn lưu trữ máy ảo mới - Thay
192.168.0.35
bằng địa chỉ IP của ESXi.
Công cụ OVF Tool sẽ yêu cầu bạn đăng nhập 2 lần: 1 lần để truy cập vào file OVA và 1 lần để tạo máy ảo mới.
OVF Tool báo lỗi: Error: No network mapping specified. OVF networks: Masked asafeplace. Target networks: VM Networks
Lý do vì trên ESXi chưa có sẵn 2 network với tên gọi Masked và asafeplace được thiết lập trong cấu hình của file OVA. Do đó, mình cần phải thêm thông số --net:"<SourceVMNetwork>=<DestinationVMNetwork>
.ovftool -ds=datastore1 --net:"Masked=VM Network" --net:"asafeplace=VM Network" "https://192.168.0.35/folder/ISO/ddwrt-x86-20190327.ova?dcPath=ha-datacenter&dsName=datastore1" "vi://192.168.0.35"
Đợi khoảng 10-30 giây. Lần này thì đã tạo máy ảo thành công.
Truy cập vào web client, máy ảo mới sẽ hiện ra với tên gọi: ddwrt-x86-20190327. ESXi tự đặt tên máy ảo dựa vào tên file ova.
Mình sẽ tạo thêm 1 máy ảo mới nữa, lần này mình thêm thông số -n=DD-WRT2
(đặt tên máy ảo) và --powerOn
(máy ảo tự khởi động sau khi tạo xong)
.ovftool -ds=datastore1 --net:"Masked=VM Network" --net:"asafeplace=VM Network" -n=DD-WRT2 --powerOn "https://192.168.0.35/folder/ISO/ddwrt-x86-20190327.ova?dcPath=ha-datacenter&dsName=datastore1" "vi://192.168.0.35"
Máy ảo DD-WRT2 sau khi tạo xong đã được tự động chạy trên ESXi.
4. Lưu ý
- Bạn có thể sử dụng file OVA được lưu trên máy tính để bàn, lưu trên Datastore hoặc lưu trên NAS, miễn là ESXi có thể kết nối đến link của file OVA.
- Chỉ nên tải file OVA / OVF template từ nguồn tin cậy, hoặc tự tạo OVA từ máy ảo có sẵn của bạn. Sử dụng template bậy bạ có thể dính virus / backdoor cài sẵn trong máy ảo mà bạn không kiểm soát được.
- Mỗi file OVA / OVF Template sẽ có những yêu cầu thông số khác nhau khi thực thi với OVF Tool thì mới tạo được máy ảo thành công. Ví du như ở trên mình phải thông số
--net
thì mới tạo được máy ảo DD-WRT. Do đó, cần phải chú ý kiểm tra thông tin của template bằng lệnhovftool fileova.ova
để biết cách sử dụng thông số phù hợp.
Chúc bạn thực hiện thành công!