εγκαθιστούμε τα prerequesites
sudo apt install qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils libguestfs-tools genisoimage virtinst libosinfo-bin
Σβήνουμε τις ρυθμίσεις της καρτας δικτυου απο το interfaces
sudo nano /etc/network/interfaces
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
Φτιάχνουμε ενα bridge και του δινουμε την στατική ip του host server μας,
sudo nano /etc/network/interfaces.d/br0
auto br0
iface br0 inet static
address 192.168.1.254
broadcast 192.168.1.255
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 8.8.4.4
bridge_ports eno1
bridge_stp off # disable Spanning Tree Protocol
bridge_waitport 0 # no delay before a port becomes available
bridge_fd 0 # no forwarding delay
sudo systemctl restart network-manager
Φτιάχνουμε ενα xml αρχείο απο το οποίο θα τραβάει το KVM τα στοιχεία του bridge που θα χρησιμοποιεί και το ενεργοποιούμε
sudo nano /root/bridged.xml
<network>
<name>br0</name>
<forward mode="bridge"/>
<bridge name="br0"/>
</network>
sudo virsh net-define --file /root/bridged.xml
sudo virsh net-autostart br0
sudo virsh net-start br0
Φτιάχνουμε ενα απλό nat στο iptables του host, ωστε να εχουν μεσω της bridge internet τα VMs
sudo iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE
sudo iptables -I FORWARD 1 -i br0 -o br0 -j ACCEPT
sudo iptables -I FORWARD 1 -i br0 -o br0 -j ACCEPT
Δημιουργούμε το VM μας (στην δική μου περίπτωση το freepbx) εδώ θα περιμένει το σύστημα να τελειώσουμε την εγκατάσταση του live cd.
sudo virt-install \
--virt-type=kvm \
--name freePBX \
--ram 1024 \
--vcpus=1 \
--os-variant=linux2022 \
--virt-type=kvm \
--hvm \
--cdrom=/var/lib/libvirt/boot/freepbx.iso \
--network=bridge=br0,model=virtio \
--graphics vnc \
--disk path=/var/lib/libvirt/images/freepbx.qcow2,size=15,bus=virtio,format=qcow2
Αφού είναι headless ο σερβερ μας, δεν μπορούμε να δούμε μέσω local vnc το VM μας. δημιουργούμε ομως το connection και φτιάχνουμε ενα καινούριο SSH Session με tunnel στο localhost. έτσι συνδεόμαστε απομακρυσμένα
sudo virsh vncdisplay freepbx