aboutsummarylogtreecommitdiffstats
path: root/tailscale_install
diff options
context:
space:
mode:
Diffstat (limited to 'tailscale_install')
-rw-r--r--tailscale_install49
1 files changed, 49 insertions, 0 deletions
diff --git a/tailscale_install b/tailscale_install
new file mode 100644
index 000000000000..b18585f98440
--- /dev/null
+++ b/tailscale_install
@@ -0,0 +1,49 @@
+#!/usr/bin/env ash
+
+build() {
+ if ! pacman -Qi tailscale >/dev/null 2>&1; then
+ error "Package tailscale not installed"
+ return 1
+ fi
+
+ local setupdir="/etc/initcpio/tailscale"
+ for fn in tailscaled.state default.env; do
+ if ! [[ -r "${setupdir}/${fn}" && -s "${setupdir}/${fn}" ]]; then
+ error "Missing configuration file at ${setupdir}/${fn}. Have you run setup-initcpio-tailscale yet?"
+ return 1
+ fi
+ done
+ add_file ${setupdir}/default.env /etc/default/tailscaled
+ add_file ${setupdir}/tailscaled.state /var/lib/tailscale/tailscaled.state
+
+ # tailscale requirements
+ add_module tun
+ add_full_dir /usr/lib/xtables
+ add_all_modules netfilter
+ map add_binary iptables ip6tables tailscale tailscaled
+
+ add_run_script
+}
+
+help() {
+ cat <<-__EOF_HELP__
+ This hook enables tailscale service within busybox initramfs.
+
+ It copies all required files and binaries to initramfs and runs
+ tailscale daemon in the background. Remember to place it before
+ any other hook that blocks for input like the 'encrypt' hook.
+
+ Configuration is copied into the initramfs from:
+
+ * /etc/initcpio/tailscale/tailscaled.state to /var/lib/tailscale/tailscaled.state
+ * /etc/initcpio/tailscale/default.env to /etc/default/tailscaled
+
+ Run setup-initcpio-tailscale to initialize /etc/initcpio/tailscale/ configuration files.
+
+ This hook must come after the network is setup and before other hooks that blocks the
+ init chain. Place it before 'encrypt' if you plan to unlock a rootfs remotely.
+
+ __EOF_HELP__
+}
+
+# vim: noexpandtab