Use random port

This commit is contained in:
Mikhail Klementev 2018-06-30 20:01:23 +00:00
parent 9cd51bb13a
commit c58f94d537
2 changed files with 6 additions and 2 deletions

View File

@ -10,7 +10,11 @@ if [[ "$1" == "build" && "$2" != "" ]]; then
sed "s;NIX_SYSTEM_PLACEHOLDER;${NIX_SYSTEM};" qemu/qemu.template > bin/appvm.${2} sed "s;NIX_SYSTEM_PLACEHOLDER;${NIX_SYSTEM};" qemu/qemu.template > bin/appvm.${2}
sed -i "s;NAME_PLACEHOLDER;${2};" bin/appvm.${2} sed -i "s;NAME_PLACEHOLDER;${2};" bin/appvm.${2}
sed -i "s;NIX_DISK_IMAGE_PLACEHOLDER;${APPVM_PATH}/qemu/qcow2/${2}.qcow2;" bin/appvm.${2} sed -i "s;NIX_DISK_IMAGE_PLACEHOLDER;${APPVM_PATH}/qemu/qcow2/${2}.qcow2;" bin/appvm.${2}
chmod +x bin/appvm.${2} RANDOM_PORT=$(/usr/bin/python -c 'import random; print(random.randint(1024,65535))')
# TODO Check for port collisions
sed -i "s;PORT_PLACEHOLDER;${RANDOM_PORT};" bin/appvm.${2}
echo -e "#!/bin/bash\nremote-viewer -f spice://127.200.0.1:${RANDOM_PORT}" > bin/appgui.${2}
chmod +x bin/app{vm,gui}.${2}
unlink result unlink result
else else
echo "Usage: $0 build APPLICATION" echo "Usage: $0 build APPLICATION"

View File

@ -26,7 +26,7 @@ qemu-system-x86_64 -enable-kvm \
-smp 1 \ -smp 1 \
-device virtio-rng-pci \ -device virtio-rng-pci \
-net nic,netdev=user.0,model=virtio -netdev user,id=user.0${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} \ -net nic,netdev=user.0,model=virtio -netdev user,id=user.0${QEMU_NET_OPTS:+,$QEMU_NET_OPTS} \
-spice port=5900,addr=127.0.0.1,disable-ticketing,image-compression=off,seamless-migration=on \ -spice port=PORT_PLACEHOLDER,addr=127.200.0.1,disable-ticketing,image-compression=off,seamless-migration=on \
-sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \ -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny \
-virtfs local,path=/nix/store,security_model=none,mount_tag=store,readonly \ -virtfs local,path=/nix/store,security_model=none,mount_tag=store,readonly \
-virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \ -virtfs local,path=$TMPDIR/xchg,security_model=none,mount_tag=xchg \