blob: c17922712d7b2f3c9af764e42be9acf9029ba66a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
#!/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
# systemd service unit
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
}
help() {
cat <<-__EOF_HELP__
This hook enables tailscale service within systemd initramfs.
It copies all required files and binaries to initramfs and enables
tailscaled.service. 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.
It is not required but highly recommended to configure the network and add a ssh server
using the hooks provided by mkinitcpio-systemd-extras package.
__EOF_HELP__
}
# vim: noexpandtab
|