ตามเทมเพลต [1] Vagrant ดูเหมือนจะไม่ติดตามไดเร็กทอรีโครงการที่เกี่ยวข้องกับ VM ในข้อมูลเมตาของโดเมน libvirt
คนจรจัดภายในเก็บข้อมูลเกี่ยวกับ VM (รวมถึงไดเร็กทอรี) ไว้ในไฟล์ JSON ~/vagrant.d/data/machine-index/index
ตรวจสอบตัวอย่าง [2]
ฉันเดาว่ามันเป็นไปได้ที่จะแก้ไขเทมเพลตเพื่อเพิ่มไดเร็กทอรีเป็นข้อมูลเมตา ซึ่งคล้ายกับวิธีที่ Openstack Nova เพิ่มข้อมูลเมตาบางอย่างลงในโดเมน libvirt ของ Guest สามารถใช้ข้อมูลเมตาเพื่อรับชื่อ VM, Flavour และอื่นๆ ได้โดยตรงจากโหนดคอมพิวท์ โดยไม่ต้องสอบถามโนวา
เห็นได้ชัดว่าสิ่งนี้ใช้ไม่ได้กับ VM ที่มีอยู่ก่อนการเปลี่ยนแปลง
[1] https://github.com/vagrant-libvirt/vagrant-libvirt/blob/master/lib/vagrant-libvirt/templates/domain.xml.erb
[2]
แมว .\ดัชนี | หลาม -m json.tool
{
"รุ่น": 1,
"เครื่องจักร": {
"4f9bf5cd740f409c867553c19c52a81c": {
"local_data_path": "C:/Vagrant-Machines/bionic-vm/.vagrant",
"ชื่อ": "ค่าเริ่มต้น",
"ผู้ให้บริการ": "hyperv",
"สถานะ": "กำลังวิ่ง",
"vagrantfile_name": null,
"vagrantfile_path": "C:/Vagrant-Machines/bionic-vm",
"updated_at": null,
"extra_data": {
"กล่อง": {
"ชื่อ": "hashicorp/bionic64",
"ผู้ให้บริการ": "hyperv",
"เวอร์ชัน": "1.0.282"
}
}
}
}
}
สำหรับการอ้างอิง นี่คือลักษณะของข้อมูลเมตาในกรณีของ Nova:
virsh dumpxml อินสแตนซ์-0033dd00 | ศีรษะ
<ประเภทโดเมน='kvm' id='93'>
<ชื่อ>อินสแตนซ์-0033dd00</name>
<uuid>XXXXXXXXXXXXXXXXXXXXX</uuid>
<ข้อมูลเมตา>
<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:flavor name="m1.small">
<nova:memory>16384</nova:memory>