Adding the code

This commit is contained in:
pdxkay
2020-07-21 22:11:11 -07:00
parent 363fdfa4fa
commit 7478330d0a
4 changed files with 121 additions and 0 deletions

33
hooks.zerotier.sh Normal file
View File

@@ -0,0 +1,33 @@
#!/bin/sh
# This hook copies host zerotier into initramfs
set -e
case "${1:-}" in
prereqs) echo ""; exit 0;;
esac
ZT_APP=/usr/sbin/zerotier-one
ZT_CLI=/usr/sbin/zerotier-cli
ZT_ID=/usr/sbin/zerotier-idtool
ZTCFG=/var/lib/zerotier-one/
# if ZT not on machine, exit
if [ ! -f ${ZT_APP} ]; then
exit 0
fi
[ -r /usr/share/initramfs-tools/hook-functions ] || exit 0
. /usr/share/initramfs-tools/hook-functions
copy_exec ${ZT_APP} ${ZT_APP}
copy_exec ${ZT_CLI} ${ZT_CLI}
copy_exec ${ZT_ID} ${ZT_ID}
copy_exec ${ZT_APP} ${ZT_APP}
mkdir -p ${DESTDIR}/var/lib
mkdir -p ${DESTDIR}/var/log
cp -rfpL ${ZTCFG} ${DESTDIR}/${ZTCFG}
manual_add_modules tun

11
install.sh Normal file
View File

@@ -0,0 +1,11 @@
#!/bin/bash
# copy script into initramfs-tools dirs
echo "Copying files"
cp hooks.zerotier.sh /usr/share/initramfs-tools/hooks/zerotier
cp scripts.init-bottom.zerotier.sh /usr/share/initramfs-tools/scripts/init-bottom/zerotier
cp scripts.init-premount.0zerotier.sh /usr/share/initramfs-tools/scripts/init-premount/0zerotier
# update initramfs to now include our scripts
echo "Updating initramfs"
update-initramfs -u

View File

@@ -0,0 +1,39 @@
#!/bin/sh
PREREQ=""
prereqs() {
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
. /scripts/functions
EXE="$(readlink -f /sbin/dropbear)" && [ -f "$EXE" ] || exit 1
ZT_APP=/usr/sbin/zerotier-one
# if ZT not on machine, exit
if [ ! -f ${ZT_APP} ]; then
exit 0
fi
log_msg_begin "Removing loopback device"
# shutdown lo
ifconfig lo down
log_end_msg
log_msg_begin "Removing tun device"
# remove created tun device
rm /dev/net/tun
log_end_msg
log_msg_begin "Stopping ZeroTier"
kill -TERM $(cat /run/zerotier-one.pid)
log_end_msg

View File

@@ -0,0 +1,38 @@
#!/bin/sh
PREREQ="udev"
prereqs() {
echo "$PREREQ"
}
case "$1" in
prereqs)
prereqs
exit 0
;;
esac
. /scripts/functions
ZT_APP=/usr/sbin/zerotier-one
# if ZT not on machine, exit
if [ ! -f ${ZT_APP} ]; then
exit 0
fi
# start zerotier if it exists
[ "$BOOT" != nfs ] || configure_networking
# create tun device file
mkdir /dev/net
mknod /dev/net/tun c 10 200
# set up local loopback
/sbin/ifconfig lo 127.0.0.1
# run zerotier-one
${ZT_APP} &> /var/log/zerotier.log &
echo $! >/run/zerotier-one.pid