لینوکس ۳۰۵؛ شب ۱۷: شبکهٔ پایه و اولین VM در libvirt
فهرست نوشته
اولین 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 .