openkubsd/bin/recreate_conf.sh
2023-06-22 00:05:48 +02:00

52 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
if [[ "$(id -u)" -ne "0" ]]
then
echo "you must run $0 as root"
exit 1
fi
cd /var/openkubsd/vm.conf.d/vms/
cat *.conf > ../vms.conf
cd /var/openkubsd/dhcpd.d/
cat *.conf > /etc/dhcpd.conf
cd /var/openkubsd/pf/
cat *.conf > /var/openkubsd/pf/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" }')
HOSTS_FILE=$(awk '/OpenKuBSD/ { stop=1 }; stop!=1 { print }' /etc/hosts)
cat <<EOF >/etc/hosts
$HOSTS_FILE
# OpenKuBSD
$HOSTS
EOF
# generate /etc/exports
HOSTS=$(find /var/openkubsd/dhcpd.d/ -not -name 00_base.conf -type f -exec cat {} + | grep -E "(^host)" | tr -d ';' | awk '{ print $2 }' | grep -v openbsd-template)
TMPFILE=$(mktemp /tmp/exports.XXXXXXXXXXXXXXXXXXXXXXXXXX)
for host in $HOSTS
do
echo "/var/openkubsd/shared/${host} ${host}.kube" >> "$TMPFILE"
done
mv $TMPFILE /etc/exports
rcctl reload vmd
rcctl restart dhcpd
# if /etc/exports was empty
# services didn't start
if ! rcctl check nfsd
then
rcctl start nfsd portmap
fi
# reload new config
# showmount -e to see the shares
rcctl reload mountd
pfctl -a openkubsd -f /var/openkubsd/pf/CONF