__ungleich_nftables/manifest
2021-07-01 10:50:41 +02:00

66 lines
1.5 KiB
Text

initscript="$__type/files/nftables-init"
os=$(cat $__global/explorer/os)
os_version=$(cat "$__global/explorer/os_version")
case "$os" in
debian)
case "$os_version" in
11*)
conf=/etc/nftables.nft
;;
*)
conf=/etc/nftables.conf
;;
esac
;;
*)
conf=/etc/nftables.nft
;;
esac
if [ -f "$__object/parameter/config-from-stdin" ]; then
srcfile="$__object/stdin"
else
if [ ! -f "$__object/parameter/config" ]; then
echo "Need either config-from-stdin or config" >&2
exit 1
fi
config=$(cat "$__object/parameter/config")
srcfile="$__files/nftables/${config}.conf"
if [ ! -f "$srcfile" ]; then
echo "No such config ${config}. Aborting." >&2
exit 1
fi
fi
MONITORING_HOSTS="emonitor1.place5.ungleich.ch, emonitor1.place6.ungleich.ch, emonitor1.place7.ungleich.ch, emonitor1.place12.ungleich.ch, server1.place4.ungleich.ch, monitoring-v3.ungleich.ch"
mkdir "$__object/files"
srctmp="$__object/files/nftables.nft"
sed "s/MONITORING_HOSTS/$MONITORING_HOSTS/" "${srcfile}" > "$srctmp"
__package nftables
__file ${conf} --source "$srctmp" --mode 0644
case $os in
# Alpine actually has an init script, as opposed to everyone else
alpine)
:
;;
debian|devuan|ubuntu)
__file /etc/init.d/nftables --source "$initscript" --mode 0755
;;
*)
echo "Unsupported os: $os" >&2
exit 1
;;
esac
require="__package/nftables" __start_on_boot nftables