اولین domain را با disk مستقل، شبکهٔ NAT آزمایشگاهی و seed مشخص می‌سازیم. هدف، boot واقعی و ورود SSH است، نه صرفاً ظاهر شدن نام در virsh.

این جلسه بخشی از دورهٔ لینوکس ۳۰۵ در ۶۰ شب است.

جایگاه در دوره: هدف‌های 351.4، 353.3 آزمون 305-300.

محیط: system libvirt شب ۱۶، image/کلید معتبر شب ۱۱ و user-data/meta-data الگوی شب ۱۲؛ instance-id را به lab01-v1 و hostname را به lab01 تغییر بده. کلید packages: [curl, qemu-guest-agent] را هم به user-data اضافه کن؛ Guest Agent پس از اتصال channel قابل استفاده می‌شود.

شبکهٔ جدید#

فایل nat305.xml:

<network>
  <name>lpic305-nat</name>
  <forward mode='nat'/>
  <bridge name='virbr305' stp='on' delay='0'/>
  <ip address='192.168.60.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.60.100' end='192.168.60.199'/>
      <host mac='52:54:00:30:05:11' name='lab01' ip='192.168.60.11'/>
      <host mac='52:54:00:30:05:12' name='lab02' ip='192.168.60.12'/>
    </dhcp>
  </ip>
</network>
virsh -c qemu:///system net-define nat305.xml
virsh -c qemu:///system net-start lpic305-nat
virsh -c qemu:///system net-autostart lpic305-nat

این object جدید است؛ existing network را overwrite نکن. libvirt bridge و DHCP/DNS را اداره می‌کند؛ ruleهای مدیر firewall دیگری را flush نکن.

disk و seed#

برای domain اول از copy مستقل base استفاده می‌کنیم تا chain dependency نداشته باشد. در پوشهٔ seed خودت cloud-localds را با config تغییرکرده اجرا کن:

cloud-localds lab01-seed.img user-data meta-data
sudo install -d -o libvirt-qemu -g kvm -m 750 /var/lib/libvirt/images/lpic305
sudo install -o libvirt-qemu -g kvm -m 600 "$BASE_IMAGE" /var/lib/libvirt/images/lpic305/lab01.qcow2
sudo qemu-img resize /var/lib/libvirt/images/lpic305/lab01.qcow2 12G
sudo install -o libvirt-qemu -g kvm -m 600 lab01-seed.img /var/lib/libvirt/images/lpic305/lab01-seed.img
virt-install --connect qemu:///system --name lab01 --memory 2048 --vcpus 2 \
  --import --osinfo ubuntu24.04 \
  --disk path=/var/lib/libvirt/images/lpic305/lab01.qcow2,format=qcow2,bus=virtio \
  --disk path=/var/lib/libvirt/images/lpic305/lab01-seed.img,format=raw,bus=virtio,readonly=on \
  --network network=lpic305-nat,model=virtio,mac=52:54:00:30:05:11 \
  --channel unix,target_type=virtio,name=org.qemu.guest_agent.0 \
  --graphics none --console pty,target_type=serial --noautoconsole

ownerهای بالا برای بستهٔ Ubuntu مبنا هستند؛ در نصب دیگر account/label واقعی را تطبیق بده. فایل lab01 باید جدید باشد. osinfo-query os را برای شناسهٔ واقعاً موجود بررسی کن و در صورت نبود ubuntu24.04 database توزیع را به‌روز کن.

آزمون: virsh domstate، net-dhcp-leases و console را ببین؛ سپس از host با key وارد 192.168.60.11 شو، cloud-init status –wait بگیر و hostname را تأیید کن. اثر انگشت SSH از console بررسی شود.

بازگشت: guest را shutdown، نام و diskها را ثبت و فقط domain جدید را undefine کن. برای حذف داده از گزینهٔ کلی remove-all-storage استفاده نمی‌کنیم؛ imageهای لازم را نگه دار.

منبع: virt-install ، شبکهٔ libvirt ، NoCloud .