seems to work a bit

This commit is contained in:
Solène Rapenne 2023-06-08 19:56:42 +02:00
parent d0a9623a29
commit 97e3b13ac2
8 changed files with 66 additions and 19 deletions

21
bin/connect.sh Executable file
View File

@ -0,0 +1,21 @@
#!/bin/sh
if [ -z "$1" ]
then
echo "Pick an host:"
awk '/.kube/ { print " - "$2 }' /etc/hosts
exit 0
fi
HOST="${1}"
PROG="${2:-xterm}"
if ! grep "$HOST" /etc/hosts >/dev/null
then
echo "$HOST doesn't exist"
exit 1
fi
doas ./start_kube.sh "${HOST%.kube}"
ssh-keygen -R "$HOST" >/dev/null 2>/dev/null
ssh -o StrictHostKeyChecking=no -Y user@$HOST "$PROG"

View File

@ -8,20 +8,29 @@ then
exit 1
fi
NAME=kube
NAME=${1:-kube}
DISK=/var/openkubsd/disks/${NAME}.qcow2
# create a qcow2 file for /home
test -f "${DISK}" || vmctl create -s 60G "${DISK}"
if test -f "${DISK}"
then
echo "$DISK already exist, this shouldn't happen"
exit 1
fi
# generate a MAC address
MAC="$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/:$//')"
NEXT_IP=$(/var/openkubsd/bin/get_ip.sh)
# create a derived disk from the template
rm -f /var/openkubsd/derived/${NAME}.qcow2
vmctl create -b /var/openkubsd/templates/openbsd-template.qcow2 /var/openkubsd/derived/${NAME}.qcow2
vmctl create -s 60G "${DISK}"
# create the vm.conf file
cat <<EOF >/var/openkubsd/vm.conf.d/vms/${NAME}.conf
vm "${NAME}" {
disk /var/openkubsd/templates/openbsd-template.qcow2
disk /var/openkubsd/derived/${NAME}.qcow2
disk $DISK
interface locked lladdr $MAC switch kubes
disable
@ -32,6 +41,7 @@ cat <<EOF >/var/openkubsd/dhcpd.d/${NAME}.conf
host ${NAME} {
hardware ethernet $MAC;
fixed-address $NEXT_IP;
option host-name "$NAME";
}
EOF

View File

@ -71,6 +71,7 @@ cat <<EOF >/var/openkubsd/dhcpd.d/${NAME}.conf
host ${NAME} {
hardware ethernet $MAC;
fixed-address $NEXT_IP;
option host-name "$NAME"
}
EOF

View File

@ -7,11 +7,9 @@ then
fi
cd /var/openkubsd/vm.conf.d/vms/
ls *.conf
cat *.conf > ../vms.conf
cd /var/openkubsd/dhcpd.d/
ls *.conf
cat *.conf > /etc/dhcpd.conf
HOSTS=$(find /var/openkubsd/dhcpd.d/ -not -name 00_base.conf -type f -exec cat {} + | grep -E "(^host|fixed-address)" | tr -d ';' | paste - - | awk '{ print $5" "$2".kube" }')

20
bin/remove_kube.sh Executable file
View File

@ -0,0 +1,20 @@
#!/bin/sh
if [[ "$(id -u)" -ne "0" ]]
then
echo "you must run $0 as root"
exit 1
fi
NAME=${1:-kube}
if vmctl show $NAME
then
rm /var/openkubsd/dhcpd.d/${NAME}.conf
rm /var/openkubsd/vm.conf.d/vms/${NAME}.conf
rm /var/openkubsd/derived/${NAME}.qcow2
rm /var/openkubsd/disks/${NAME}.qcow2
/var/openkubsd/bin/recreate_conf.sh
else
echo "$NAME doesn't exist"
fi

View File

@ -17,6 +17,7 @@ install -d -o root -g wheel -m 755 /var/openkubsd/vm.conf.d/
install -d -o root -g wheel -m 755 /var/openkubsd/vm.conf.d/vms/
install -d -o root -g wheel -m 700 /var/openkubsd/pf/
install -d -o root -g wheel -m 700 /var/openkubsd/disks/
install -d -o root -g wheel -m 700 /var/openkubsd/derived/
install -d -o root -g wheel -m 755 /var/openkubsd/templates/
install -o root -g wheel -m 555 ./get_ip.sh /var/openkubsd/bin/

View File

@ -6,8 +6,14 @@ then
exit 1
fi
# create a derived disk from the template
rm -f /tmp/kube.qcow2
vmctl create -b /var/openkubsd/templates/openbsd.qcow2 /tmp/kube.qcow2
NAME=${1:-kube}
vmctl start -n kube -d /tmp/kube.qcow2 -d /var/openkubsd/disks/kube.qcow2 kube
if vmctl status $NAME | grep running >/dev/null
then
exit 0
fi
# create a derived disk from the template
rm -f /var/openkubsd/derived/${NAME}.qcow2
vmctl create -b /var/openkubsd/templates/openbsd-template.qcow2 /var/openkubsd/derived/${NAME}.qcow2
vmctl start $NAME

View File

@ -1,10 +0,0 @@
#!/bin/sh
if [[ "$(id -u)" -ne "0" ]]
then
echo "you must run $0 as root"
exit 1
fi
vmctl stop -w kube
rm -f /tmp/kube.qcow2