2020-07-31 00:20:36 +00:00
|
|
|
#!/bin/bash
|
|
|
|
appdir=$(cd `dirname $0` && pwd)
|
2020-07-31 11:35:15 +00:00
|
|
|
apptmp='/tmp'
|
2020-08-02 02:11:31 +00:00
|
|
|
vmsize='16G'
|
2020-07-31 12:00:40 +00:00
|
|
|
vmmem='4G'
|
2020-07-31 11:58:45 +00:00
|
|
|
vcpu=`cat /proc/cpuinfo|grep proc|tail -1|awk '{print $NF}'`
|
|
|
|
k8sdsk="${apptmp}/k8s-demo.raw"
|
2020-07-31 01:30:03 +00:00
|
|
|
httpboot='http://ftp.debian.org/debian/dists/stretch/main/installer-amd64/current/images/netboot/debian-installer/amd64'
|
2020-07-31 00:24:05 +00:00
|
|
|
seed='https://git.ix.gs/public/coins-demo/raw/branch/master/contrib/k8s-seed.txt'
|
2020-08-02 00:21:54 +00:00
|
|
|
qemu="${appdir}/contrib/qemu-system-x86_64 -L ${appdir}/contrib/share/qemu -net nic -net user,net=100.100.100.0/24,hostfwd=tcp::8888-:80 -m ${vmmem} -smp ${vcpu} -localtime -enable-kvm -cpu host,+nx -M pc -vga std -usbdevice tablet -k en-us -hda ${k8sdsk} -boot once=d -nographic"
|
2020-07-31 12:36:44 +00:00
|
|
|
wget='wget -cq4O'
|
2020-07-31 00:20:36 +00:00
|
|
|
###
|
|
|
|
installvm() {
|
2020-08-01 18:45:08 +00:00
|
|
|
echo "Allocating ${vmsize} disk..." && \
|
|
|
|
fallocate -l ${vmsize} ${k8sdsk} && \
|
|
|
|
echo "Downloading Linux kernel..." && \
|
2020-08-01 23:06:44 +00:00
|
|
|
${wget} ${apptmp}/kernel ${httpboot}/linux && \
|
2020-08-01 18:45:08 +00:00
|
|
|
echo "Downloading Initial ramdisk..." && \
|
|
|
|
${wget} ${apptmp}/initrd ${httpboot}/initrd.gz && \
|
|
|
|
echo "Preparing K8S VM..." && \
|
|
|
|
${qemu} -kernel ${apptmp}/kernel -initrd ${apptmp}/initrd -append "console=ttyS0,115200n8 apt-setup/proposed=true nomodeset fb=false priority=critical locale=en_US url=${seed}" && \
|
|
|
|
echo "Housekeeping..." && \
|
2020-08-01 19:09:32 +00:00
|
|
|
rm -f ${apptmp}/kernel ${apptmp}/initrd
|
2020-07-31 00:20:36 +00:00
|
|
|
}
|
|
|
|
runvm() {
|
|
|
|
echo "Look like we already has VM, let's go"
|
|
|
|
${qemu}
|
|
|
|
}
|
|
|
|
###
|
|
|
|
if [ ! -f "${k8sdsk}" ]; then
|
2020-07-31 00:47:35 +00:00
|
|
|
installvm && runvm;
|
2020-07-31 00:20:36 +00:00
|
|
|
else
|
|
|
|
runvm;
|
|
|
|
fi
|