Dựa trên mẫu [1], Vagrant dường như không theo dõi thư mục dự án được liên kết với VM trong siêu dữ liệu miền libvirt.
Nội bộ Vagrant giữ thông tin về VM (bao gồm cả thư mục) trong tệp JSON ~/vagrant.d/data/machine-index/index
, kiểm tra ví dụ [2]
Tôi đoán có thể sửa đổi mẫu để thêm thư mục dưới dạng siêu dữ liệu, tương tự như cách Openstack Nova thêm một số siêu dữ liệu vào miền libvirt của Khách, siêu dữ liệu có thể được sử dụng để lấy tên VM, Hương vị, v.v. trực tiếp từ nút tính toán mà không cần truy vấn Nova.
Rõ ràng điều này không áp dụng cho các máy ảo hiện có trước khi thay đổi.
[1] https://github.com/vagrant-libvirt/vagrant-libvirt/blob/master/lib/vagrant-libvirt/templates/domain.xml.erb
[2]
con mèo .\index | python -m json.tool
{
"phiên bản 1,
"máy móc": {
"4f9bf5cd740f409c867553c19c52a81c": {
"local_data_path": "C:/Vagrant-Machines/bionic-vm/.vagrant",
"tên": "mặc định",
"nhà cung cấp": "hyperv",
"trạng thái": "đang chạy",
"vagrantfile_name": null,
"vagrantfile_path": "C:/Vagrant-Machines/bionic-vm",
"updated_at": null,
"dữ_liệu phụ": {
"hộp": {
"tên": "hashicorp/bionic64",
"nhà cung cấp": "hyperv",
"phiên bản": "1.0.282"
}
}
}
}
}
Để tham khảo, ở đây siêu dữ liệu trông như thế nào trong trường hợp của Nova:
ví dụ virsh dumpxml-0033dd00 | cái đầu
<loại miền='kvm' id='93'>
<name>ví dụ-0033dd00</name>
<uuid>XXXXXXXXXXXXXXXXXXX</uuid>
<siêu dữ liệu>
<nova:instance xmlns:nova="http://openstack.org/xmlns/libvirt/nova/1.0">
<nova:package version="17.0.13"/>
<nova:name>VM-NAME</nova:name>
<nova:creationTime>2021-05-11 10:50:49</nova:creationTime>
<nova:flavour name="m1.small">
<nova:memory>16384</nova:memory>