From 09f193648cbba2047ef97fa9d5bdcdbc35e68efe Mon Sep 17 00:00:00 2001 From: cinnaboot Date: Wed, 28 Jun 2023 09:35:22 -0400 Subject: [PATCH] scripts: add start_libvirt.sh --- bin/start_libvirt.sh | 49 ++++++++++++++++++++++++++++++++++++++++++++ sync.sh | 1 + 2 files changed, 50 insertions(+) create mode 100755 bin/start_libvirt.sh diff --git a/bin/start_libvirt.sh b/bin/start_libvirt.sh new file mode 100755 index 0000000..9144575 --- /dev/null +++ b/bin/start_libvirt.sh @@ -0,0 +1,49 @@ +#!/usr/bin/sh +# start libvirtd systemd service, and cleanup on exit + + +VIRSH_CMD="virsh -c qemu:///system" +NET_NAME="default" +LIBVIRT_CIDR=192.168.122.0/24 + + +if [ $UID -ne 0 ]; then + echo "must run as root" + exit 1 +fi + +start_libvirt() { + systemctl start libvirtd + + if [ "$($VIRSH_CMD net-list --inactive --name)" = $NET_NAME ]; then + $VIRSH_CMD net-start $NET_NAME + fi + + # allow DNS for libvirt + iptables -A INPUT -d $LIBVIRT_CIDR -p udp -m udp --dport 53 -j ACCEPT + iptables -A OUTPUT -s $LIBVIRT_CIDR -p udp -m udp --sport 53 -j ACCEPT + + # allow SSH for libvirt + iptables -A INPUT -d $LIBVIRT_CIDR -p tcp -m tcp --sport 22 -j ACCEPT + iptables -A OUTPUT -s $LIBVIRT_CIDR -p tcp -m tcp --dport 22 -j ACCEPT +} + +cleanup () { + echo "exiting" + $VIRSH_CMD net-destroy $NET_NAME + systemctl stop libvirtd.socket + systemctl stop libvirtd + # reset default nftables + nft -f /etc/nftables.conf +} + +# call cleanup function on exit signal +trap cleanup EXIT +start_libvirt +echo "waiting for ctrl-c to cleanup" + +while true +do + sleep 1 +done + diff --git a/sync.sh b/sync.sh index 49d8706..769d38d 100755 --- a/sync.sh +++ b/sync.sh @@ -39,6 +39,7 @@ SCRIPTS=" $HOME/bin/kill_at_spi2.sh \ $HOME/bin/monitors_off.sh \ $HOME/bin/pacman_notify.sh \ + $HOME/bin/start_libvirt.sh \ $HOME/bin/wmresize.sh \ "