52 lines
1.2 KiB
Bash
Executable File
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
|