diff options
author | Daniel Graña | 2023-12-13 01:19:01 -0300 |
---|---|---|
committer | Daniel Graña | 2023-12-13 01:19:24 -0300 |
commit | 46c7f8dc30bed09dbebf5fbb4b6318a0eb890bdb (patch) | |
tree | 8219676eb44252d4857acf7ed207da810f97f2a1 /initcpio-install-tailscale | |
parent | 389946a206ca76711fef3b729d4bcd6692d2b3eb (diff) | |
download | aur-46c7f8dc30bed09dbebf5fbb4b6318a0eb890bdb.tar.gz |
Rename hooks and install files
Diffstat (limited to 'initcpio-install-tailscale')
-rw-r--r-- | initcpio-install-tailscale | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/initcpio-install-tailscale b/initcpio-install-tailscale new file mode 100644 index 000000000000..870f78e802f7 --- /dev/null +++ b/initcpio-install-tailscale @@ -0,0 +1,61 @@ +#!/usr/bin/env bash + +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 + + if [[ $(type -t add_systemd_unit ) == function ]]; then + add_systemd_unit tailscaled.service + add_systemd_drop_in tailscaled.service override <<-EOU + [Unit] + DefaultDependencies=no + After=network-online.target + Wants=network-online.target + EOU + add_symlink /etc/systemd/system/sysinit.target.wants/tailscaled.service \ + /usr/lib/systemd/system/tailscaled.service + else + add_runscript + fi +} + +help() { + cat <<-__EOF_HELP__ + This hook enables tailscale service within initramfs. + + It copies all required files and binaries to initramfs and runs the Tailscale agent. + Configuration is copied from the host into the initramfs per: + + * /etc/initcpio/tailscale/tailscaled.state to /var/lib/tailscale/tailscaled.state + + * /etc/initcpio/tailscale/default.env to /etc/default/tailscaled + + It works with both, systemd and busybox init systems; whatever you choose remember to also configure network and a ssh server. + + For systemd inits, see 'sd-network' and 'sd-tinyssh' hooks provided by mkinitcpio-systemd-extras package. + + Run /usr/bin/setup-initcpio-tailscale if you haven't already to initialize the configuration files at /etc/initcpio/tailscale/. + + For more check https://github.com/dangra/mkinitcpio-tailscale + __EOF_HELP__ +} + +# vim: noexpandtab |