Merge branch 'fvs' into fvs-wlanstick-feature

This commit is contained in:
Raphael Dannecker 2024-01-30 08:34:24 +01:00
commit deb9243165
3 changed files with 83 additions and 0 deletions

View file

@ -50,6 +50,7 @@
- pulseview
- python3-websockets
- qpdfview
- shellcheck
- sigrok
- sigrok-cli
- tmux
@ -64,6 +65,12 @@
environment:
http_proxy: '' # this is needed to avoid ttf-mscorefonts-installer picking up aptcacher
- name: Remove update notifications from plasma-discover
apt:
name:
- plasma-discover
autoremove: true
state: absent
- name: Make sure wireshark works for all users after installation and upgrades
ansible.builtin.copy:

61
roles/lmn_vm/files/vm-netboot Executable file
View file

@ -0,0 +1,61 @@
#!/usr/bin/bash
#
# Start a netboot VM connected to macvtap device and fraction of mem/cpus
#
set -eu
menu=(standard "CLI Standard Debian GNU/Linux"
kde-desktop "KDE Plasma Desktop Debian GNU/Linux"
gnome-desktop "Gnome Desktop Debian GNU/Linux")
img=$(dialog --clear --backtitle "Virtual Machine Chooser" \
--title "Choose the Virtual Machine to Start" \
--menu "Start VM:" 12 60 6 \
"${menu[@]}" 2>&1 >/dev/tty)
if [[ -z $img ]] ; then
echo "Starting VM canceled."
exit 1
fi
mac="$(ip link | grep -A1 "vm-macvtap" | \
sed -nE "s%\s+link/ether ([[:xdigit:]:]{17}) .+%\1%p")"
if [[ $# -eq 0 ]] ; then
mem=$(sed -En "s/^MemTotal:\s+([0-9]+)\s+kB/\1/p" /proc/meminfo)
cpu=$(sed -En "0,/^cpu cores/s/^cpu cores\s+:\s+([0-9]+)/\1/p" /proc/cpuinfo)
arg=("--memory=$((mem/2048))" "--vcpu=$((cpu/2))")
echo Set options: "${arg[@]}"
else
arg=("$@")
fi
kernel="http://livebox/d-i/n-live/$img/live/vmlinuz"
initrd="http://livebox/d-i/n-live/$img/live/initrd.img"
kargs=(boot=live components splash locales=de_DE.UTF-8 keyboard-layouts=de \
swap=true live-config.timezone=Europe/Berlin netboot=nfs \
"nfsroot=10.190.1.2:/srv/nfs/debian-live/$img/")
type="ethernet,mac=${mac},target.dev=vm-macvtap,xpath1.set=./target/@managed=no"
## FIXME: use passt, needs more settings for correct DNS/gateway
# type=user,xpath1.create=./backend,xpath2.set=./backend/@type=passt,xpath3.create=./ip,xpath4.set=./ip/@family=ipv4,xpath5.set=./ip/@address=172.16.1.1,xpath6.set=./ip/@prefix=24,xpath7.create=./portForward,xpath8.set=./portForward/@proto=tcp,xpath9.set=./portForward/range/@start=2001,xpath10.set=./portForward/range/@end=2500,xpath11.set=./portForward/range/@to=1
case "$img" in
standard)
arg+=("--autoconsole=text")
kargs+=("console=ttyS0")
;;
*)
;;
esac
http_proxy='' XDG_CONFIG_HOME="/tmp/${UID}/.config" \
exec virt-install \
--name "$img" \
--osinfo debiantesting \
--nodisks --import --noreboot --transient \
--install kernel="$kernel",initrd="$initrd",kernel_args="${kargs[*]}" \
--network "type=$type" "${arg[@]}"
# --filesystem "$HOME",share
# mount -t 9p share /mnt

View file

@ -16,6 +16,7 @@
- ctorrent
- libvirt-daemon-system
- virt-manager
- dialog # for vm-netboot menu
state: latest
autoremove: true
@ -247,3 +248,17 @@
command: sudo -u lmnsynci /usr/local/bin/sync-vm.sh -t
register: result
changed_when: result.stdout | length > 0
- name: Start virt-manager in session mode by default
ansible.builtin.copy:
dest: /usr/local/bin/virt-manager
content: |
#!/usr/bin/sh
exec /usr/bin/virt-manager --connect qemu:///session $@
mode: '0755'
- name: Copy vm-netboot script
ansible.builtin.copy:
src: vm-netboot
dest: /usr/local/bin/
mode: '0755'