v1
This commit is contained in:
commit
0648d481bc
7 changed files with 265 additions and 0 deletions
49
bin/mkvm.sh
Executable file
49
bin/mkvm.sh
Executable 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
44
bin/ramdisk.sh
Executable 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
|
||||
Loading…
Reference in a new issue