This commit is contained in:
selfhoster selfhoster 2023-04-10 20:33:27 +02:00
commit 0648d481bc
7 changed files with 265 additions and 0 deletions

49
bin/mkvm.sh Executable file
View file

@ -0,0 +1,49 @@
#! /usr/bin/env bash
KEEP=0
SYSDIR="/ramdisk/sys"
TMPDIR="/ramdisk/tmp"
case "$1" in
"-h"|"--help")
echo "testvm.sh DISTRO [CMD]"
echo " -k|--keep: Don't destroy the VM after running"
exit 0
;;
"-k"|"--keep")
KEEP=1
shift
;;
esac
TYPE="$1"
TEMPLATE=/var/lib/lxc/"$TYPE".template
if [ ! -f "$TEMPLATE" ]; then
echo "ERROR: No such VM type "$TYPE""
exit 1
fi
export VMNAME="$TYPE-$RANDOM"
echo "$VMNAME"
LXCDIR=/var/lib/lxc/"$VMNAME"
mkdir "$LXCDIR"
envsubst < "$TEMPLATE" > "$LXCDIR"/config
ROOTFS="$TMPDIR"/"$VMNAME"
mkdir -p "$ROOTFS"/etc/
echo "$VMNAME" > "$ROOTFS"/etc/hostname
CMD="$2"
if [[ "$CMD" != "" ]]; then
lxc-execute -n "$VMNAME" -- "$CMD"
[ $KEEP -eq 0 ] && lxc-destroy -n "$VMNAME"
else
lxc-start -n "$VMNAME"
lxc-attach -n "$VMNAME" bash
[ $KEEP -eq 0 ] && lxc-stop --kill "$VMNAME" && lxc-destroy -n "$VMNAME"
fi

44
bin/ramdisk.sh Executable file
View file

@ -0,0 +1,44 @@
#! /usr/bin/env bash
start() {
[ -d /ramdisk/sys ] && rm -rf /ramdisk/sys
[ -d /ramdisk/tmp ] && rm -rf /ramdisk/tmp
mkdir -p /ramdisk/sys
mkdir -p /ramdisk/tmp
echo "Bienvenue dans le ramdisk"
mount -t tmpfs -o size=32G tmpfs /ramdisk/sys
mount -t tmpfs -o size=32G tmpfs /ramdisk/tmp
echo "ramdisk monté!"
if [ -d /ramdisk/persist ]; then
cp -a /ramdisk/persist/* /ramdisk/sys/
echo "Données persistentes copiées!"
fi
mount -o remount,ro /ramdisk/sys
}
stop() {
umount /ramdisk/sys
rm -rf /ramdisk/sys
umount /ramdisk/tmp
rm -rf /ramdisk/tmp
echo "ramdisk démonté!"
}
help() {
echo "ramdisk.sh start|stop"
echo " Mount a readonly ramdisk to /ramdisk/sys and a read-write one to /ramdisk/tmp"
}
case "$1" in
"start")
start
;;
"stop")
stop
;;
*)
help
;;
esac