mirror of
https://github.com/ben-grande/qusal.git
synced 2025-06-06 22:08:57 -04:00
feat: add Tailscale formula
Fixes: https://github.com/ben-grande/qusal/issues/42
This commit is contained in:
parent
1425cdaf1c
commit
eed904c7f2
20 changed files with 493 additions and 0 deletions
|
@ -48,6 +48,7 @@ host:
|
||||||
- rpm_spec/qusal-sys-ssh.spec
|
- rpm_spec/qusal-sys-ssh.spec
|
||||||
- rpm_spec/qusal-sys-ssh-agent.spec
|
- rpm_spec/qusal-sys-ssh-agent.spec
|
||||||
- rpm_spec/qusal-sys-syncthing.spec
|
- rpm_spec/qusal-sys-syncthing.spec
|
||||||
|
- rpm_spec/qusal-sys-tailscale.spec
|
||||||
- rpm_spec/qusal-sys-usb.spec
|
- rpm_spec/qusal-sys-usb.spec
|
||||||
- rpm_spec/qusal-sys-wireguard.spec
|
- rpm_spec/qusal-sys-wireguard.spec
|
||||||
- rpm_spec/qusal-terraform.spec
|
- rpm_spec/qusal-terraform.spec
|
||||||
|
|
|
@ -105,6 +105,10 @@ Files: salt/sys-syncthing/files/repo/*
|
||||||
Copyright: 2014 The Syncthing Project <release@syncthing.net>
|
Copyright: 2014 The Syncthing Project <release@syncthing.net>
|
||||||
License: CC0-1.0
|
License: CC0-1.0
|
||||||
|
|
||||||
|
Files: salt/sys-tailscale/files/repo/*
|
||||||
|
Copyright: 2020 Tailscale Inc. <info@tailscale.com>
|
||||||
|
License: CC0-1.0
|
||||||
|
|
||||||
Files: salt/terraform/files/repo/*
|
Files: salt/terraform/files/repo/*
|
||||||
Copyright: 2023 HashiCorp Inc. <security+packaging@hashicorp.com>
|
Copyright: 2023 HashiCorp Inc. <security+packaging@hashicorp.com>
|
||||||
License: CC0-1.0
|
License: CC0-1.0
|
||||||
|
|
108
rpm_spec/qusal-sys-tailscale.spec
Normal file
108
rpm_spec/qusal-sys-tailscale.spec
Normal file
|
@ -0,0 +1,108 @@
|
||||||
|
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
%define project sys-tailscale
|
||||||
|
%define license_csv AGPL-3.0-or-later
|
||||||
|
## Reproducibility.
|
||||||
|
%define source_date_epoch_from_changelog 1
|
||||||
|
%define use_source_date_epoch_as_buildtime 1
|
||||||
|
%define clamp_mtime_to_source_date_epoch 1
|
||||||
|
## Changelog is trimmed according to current date, not last date from changelog.
|
||||||
|
%define _changelog_trimtime 0
|
||||||
|
%define _changelog_trimage 0
|
||||||
|
%global _buildhost %{name}
|
||||||
|
## Python bytecode interferes when updates occur and restart is not done.
|
||||||
|
%undefine __brp_python_bytecompile
|
||||||
|
|
||||||
|
Name: qusal-sys-tailscale
|
||||||
|
Version: 0.0.1
|
||||||
|
Release: 1%{?dist}
|
||||||
|
Summary: Tailscale environment in Qubes OS
|
||||||
|
Group: qusal
|
||||||
|
Packager: %{?_packager}%{!?_packager:Ben Grande <ben.grande.b@gmail.com>}
|
||||||
|
Vendor: Ben Grande
|
||||||
|
License: AGPL-3.0-or-later
|
||||||
|
URL: https://github.com/ben-grande/qusal
|
||||||
|
BugURL: https://github.com/ben-grande/qusal/issues
|
||||||
|
Source0: %{name}-%{version}.tar.gz
|
||||||
|
BuildArch: noarch
|
||||||
|
|
||||||
|
Requires: qubes-mgmt-salt
|
||||||
|
Requires: qubes-mgmt-salt-dom0
|
||||||
|
Requires: qusal-utils
|
||||||
|
|
||||||
|
|
||||||
|
%description
|
||||||
|
Install Tailscale and use it on the "sys-tailscale" or with any other qube you
|
||||||
|
want to install.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -q
|
||||||
|
|
||||||
|
%build
|
||||||
|
|
||||||
|
%check
|
||||||
|
|
||||||
|
%pre
|
||||||
|
|
||||||
|
%install
|
||||||
|
rm -rf %{buildroot}
|
||||||
|
install -m 755 -d \
|
||||||
|
%{buildroot}/srv/salt/qusal \
|
||||||
|
%{buildroot}%{_docdir}/%{name} \
|
||||||
|
%{buildroot}%{_defaultlicensedir}/%{name}
|
||||||
|
|
||||||
|
for license in $(echo "%{license_csv}" | tr "," " "); do
|
||||||
|
license_dir="LICENSES"
|
||||||
|
if test -d "salt/%{project}/LICENSES"; then
|
||||||
|
license_dir="salt/%{project}/LICENSES"
|
||||||
|
fi
|
||||||
|
install -m 644 "${license_dir}/${license}.txt" %{buildroot}%{_defaultlicensedir}/%{name}/
|
||||||
|
done
|
||||||
|
|
||||||
|
install -m 644 salt/%{project}/README.md %{buildroot}%{_docdir}/%{name}/
|
||||||
|
rm -rf \
|
||||||
|
salt/%{project}/LICENSES \
|
||||||
|
salt/%{project}/README.md \
|
||||||
|
salt/%{project}/.*
|
||||||
|
cp -rv salt/%{project} %{buildroot}/srv/salt/qusal/%{name}
|
||||||
|
|
||||||
|
%post
|
||||||
|
if test "$1" = "1"; then
|
||||||
|
## Install
|
||||||
|
qubesctl state.apply sys-tailscale.create
|
||||||
|
qubesctl --skip-dom0 --targets=tpl-sys-tailscale state.apply sys-tailscale.install
|
||||||
|
elif test "$1" = "2"; then
|
||||||
|
## Upgrade
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
%preun
|
||||||
|
if test "$1" = "0"; then
|
||||||
|
## Uninstall
|
||||||
|
true
|
||||||
|
elif test "$1" = "1"; then
|
||||||
|
## Upgrade
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
%postun
|
||||||
|
if test "$1" = "0"; then
|
||||||
|
## Uninstall
|
||||||
|
true
|
||||||
|
elif test "$1" = "1"; then
|
||||||
|
## Upgrade
|
||||||
|
true
|
||||||
|
fi
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%license %{_defaultlicensedir}/%{name}/*
|
||||||
|
%doc %{_docdir}/%{name}/README.md
|
||||||
|
%dir /srv/salt/qusal/%{name}
|
||||||
|
/srv/salt/qusal/%{name}/*
|
||||||
|
%dnl TODO: missing '%ghost', files generated during %post, such as Qrexec policies.
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
|
58
salt/sys-tailscale/README.md
Normal file
58
salt/sys-tailscale/README.md
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
# sys-tailscale
|
||||||
|
|
||||||
|
Tailscale environment in Qubes OS.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
|
||||||
|
* [Description](#description)
|
||||||
|
* [Installation](#installation)
|
||||||
|
* [Usage](#usage)
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
Install Tailscale and use it on the "sys-tailscale" or with any other qube you
|
||||||
|
want to install.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
* Top:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo qubesctl top.enable sys-tailscale
|
||||||
|
sudo qubesctl --targets=tpl-sys-tailscale state.apply
|
||||||
|
sudo qubesctl top.disable sys-tailscale
|
||||||
|
```
|
||||||
|
|
||||||
|
* State:
|
||||||
|
|
||||||
|
<!-- pkg:begin:post-install -->
|
||||||
|
|
||||||
|
```sh
|
||||||
|
sudo qubesctl state.apply sys-tailscale.create
|
||||||
|
sudo qubesctl --skip-dom0 --targets=tpl-sys-tailscale state.apply sys-tailscale.install
|
||||||
|
```
|
||||||
|
|
||||||
|
<!-- pkg:end:post-install -->
|
||||||
|
|
||||||
|
The Tailscale qube requires the Tailscale service to be enabled:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
qvm-features QUBE service.tailscale 1
|
||||||
|
```
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
Authenticate to your Tailnet by following the upstream instructions to
|
||||||
|
[generate an auth key](https://tailscale.com/kb/1085/auth-keys#generate-an-auth-key).
|
||||||
|
|
||||||
|
On the Tailscale web interface, authorize the new device.
|
||||||
|
|
||||||
|
You may want to [disable automatic key
|
||||||
|
expiry](https://tailscale.com/kb/1085/auth-keys#key-expiry) to avoid having to
|
||||||
|
redo the authentication steps.
|
||||||
|
|
||||||
|
There are various functionalities Tailscale provides, consult
|
||||||
|
[upstream documentation](https://tailscale.com/kb) for more information. There
|
||||||
|
is also an
|
||||||
|
[introductory video](https://tailscale.dev/blog/get-started-in-10-nov2023)
|
||||||
|
covering the basics.
|
8
salt/sys-tailscale/clone.sls
Normal file
8
salt/sys-tailscale/clone.sls
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% from 'utils/macros/clone-template.sls' import clone_template -%}
|
||||||
|
{{ clone_template('debian-minimal', sls_path) }}
|
10
salt/sys-tailscale/clone.top
Normal file
10
salt/sys-tailscale/clone.top
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- sys-tailscale.clone
|
57
salt/sys-tailscale/create.sls
Normal file
57
salt/sys-tailscale/create.sls
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{%- from "qvm/template.jinja" import load -%}
|
||||||
|
|
||||||
|
include:
|
||||||
|
- .clone
|
||||||
|
|
||||||
|
{% load_yaml as defaults -%}
|
||||||
|
name: tpl-{{ slsdotpath }}
|
||||||
|
force: True
|
||||||
|
require:
|
||||||
|
- sls: {{ slsdotpath }}.clone
|
||||||
|
prefs:
|
||||||
|
- audiovm: ""
|
||||||
|
- memory: 300
|
||||||
|
- maxmem: 400
|
||||||
|
features:
|
||||||
|
- set:
|
||||||
|
- default-menu-items: "qubes-run-terminal.desktop qubes-start.desktop"
|
||||||
|
- menu-items: "qubes-run-terminal.desktop qubes-start.desktop"
|
||||||
|
{%- endload %}
|
||||||
|
{{ load(defaults) }}
|
||||||
|
|
||||||
|
{% load_yaml as defaults -%}
|
||||||
|
name: {{ slsdotpath }}
|
||||||
|
force: True
|
||||||
|
require:
|
||||||
|
- sls: {{ slsdotpath }}.clone
|
||||||
|
present:
|
||||||
|
- template: tpl-{{ slsdotpath }}
|
||||||
|
- label: purple
|
||||||
|
prefs:
|
||||||
|
- template: tpl-{{ slsdotpath }}
|
||||||
|
- label: purple
|
||||||
|
- audiovm: ""
|
||||||
|
- vcpus: 1
|
||||||
|
- memory: 400
|
||||||
|
- maxmem: 500
|
||||||
|
- autostart: False
|
||||||
|
- include_in_backups: True
|
||||||
|
features:
|
||||||
|
- set:
|
||||||
|
- menu-items: "qubes-run-terminal.desktop qubes-start.desktop"
|
||||||
|
- enable:
|
||||||
|
- service.tailscale
|
||||||
|
- disable:
|
||||||
|
- service.cups
|
||||||
|
- service.cups-browsed
|
||||||
|
{%- endload %}
|
||||||
|
{{ load(defaults) }}
|
||||||
|
|
||||||
|
{% from 'utils/macros/policy.sls' import policy_set with context -%}
|
||||||
|
{{ policy_set(sls_path, '80') }}
|
10
salt/sys-tailscale/create.top
Normal file
10
salt/sys-tailscale/create.top
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- sys-tailscale.create
|
52
salt/sys-tailscale/files/repo/tailscale.asc
Normal file
52
salt/sys-tailscale/files/repo/tailscale.asc
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBF5UmbgBEADAA5mxC8EoWEf53RVdlhQJbNnQW7fctUA5yNcGUbGGGTk6XFqO
|
||||||
|
nlek0Us0FAl5KVBgcS0Bj+VSwKVI/wx91tnAWI36CHeMyPTawdT4FTcS2jZMHbcN
|
||||||
|
UMqM1mcGs3wEQmKz795lfy2cQdVktc886aAF8hy1GmZDSs2zcGMvq5KCNPuX3DD5
|
||||||
|
INPumZqRTjwSwlGptUZrJpKWH4KvuGr5PSy/NzC8uSCuhLbFJc1Q6dQGKlQxwh+q
|
||||||
|
AF4uQ1+bdy92GHiFsCMi7q43hiBg5J9r55M/skboXkNBlS6kFviP+PADHNZe5Vw0
|
||||||
|
0ERtD/HzYb3cH5YneZuYXvnJq2/XjaN6OwkQXuqQpusB5fhIyLXE5ZqNlwBzX71S
|
||||||
|
779tIyjShpPXf1HEVxNO8TdVncx/7Zx/FSdwUJm4PMYQmnwBIyKlYWlV2AGgfxFk
|
||||||
|
mt2VexyS5s4YA1POuyiwW0iH1Ppp9X14KtOfNimBa0yEzgW3CHTEg55MNZup6k2Q
|
||||||
|
mRGtRjeqM5cjrq/Ix15hISmgbZogPRkhz/tcalK38WWAR4h3N8eIoPasLr9i9OVe
|
||||||
|
8aqsyXefCrziaiJczA0kCqhoryUUtceMgvaHl+lIPwyW0XWwj+0q45qzjLvKet+V
|
||||||
|
Q8oKLT1nMr/whgeSJi99f/jE4sWIbHZ0wwR02ZCikKnS05arl3v+hiBKPQARAQAB
|
||||||
|
tERUYWlsc2NhbGUgSW5jLiAoUGFja2FnZSByZXBvc2l0b3J5IHNpZ25pbmcga2V5
|
||||||
|
KSA8aW5mb0B0YWlsc2NhbGUuY29tPokCTgQTAQgAOBYhBCWWqZ6qszghiTwKeUWM
|
||||||
|
qDKVf1hoBQJeVJm4AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEEWMqDKV
|
||||||
|
f1hoWHEP/1DYd9WZrodyV5zy1izvj0FXtUReJi374gDn3cHrG6uYtXcE9HWZhxQD
|
||||||
|
6nDgYuey5sBhLvPQiE/sl5GYXNw/O95XVk8HS54BHCCYq1GeYkZaiCGLGFBA08JK
|
||||||
|
7PZItGsfdJHwHfhSMtGPS7Cpmylje9gh8ic56NAhC7c5tGTlD69Y8zGHjnRQC6Hg
|
||||||
|
wF34jdp8JTQpSctpmiOxOXN+eH8N59zb0k30CUym1Am438AR0PI6RBTnubBH+Xsc
|
||||||
|
eQhLJnmJ1bM6GP4agXw5T1G/qp95gjIddHXzOkEvrpVfJFCtp91VIlBwycspKYVp
|
||||||
|
1IKAdPM6CVf/YoDkawwm4y4OcmvNarA5dhWBG0Xqse4v1dlYbiHIFcDzXuMyrHYs
|
||||||
|
D2Wg8Hx8TD64uBHY0fp24nweCLnaZCckVUsnYjb0A494lgwveswbZeZ6JC5SbDKH
|
||||||
|
Tc2SE4jq+fsEEJsqsdHIC04d+pMXI95HinJHU1SLBTeKLvEF8Zuk7RTJyaUTjs7h
|
||||||
|
Ne+xWDmRjjR/D/GXBxNrM9mEq6Jvp/ilYTdWwAyrSmTdotHb+NWjAGpJWj5AZCH9
|
||||||
|
HeBr2mtVhvTu3KtCQmGpRiR18zMbmemRXUh+IX5hpWGzynhtnSt7vXOvhJdqqc1D
|
||||||
|
VennRMQZMb09wJjPcvLIApUMl69r29XmyB59NM3UggK/UCJrpYfmuQINBF5UmbgB
|
||||||
|
EADTSKKyeF3XWDxm3x67MOv1Zm3ocoe5xGDRApPkgqEMA+7/mjVlahNXqA8btmwM
|
||||||
|
z1BH5+trjOUoohFqhr9FPPLuKaS/pE7BBP38KzeA4KcTiEq5FQ4JzZAIRGyhsAr+
|
||||||
|
6bxcKV/tZirqOBQFC7bH2UAHH7uIKHDUbBIDFHjnmdIzJ5MBPMgqvSPZvcKWm40g
|
||||||
|
W+LWMGoSMH1Uxd+BvW74509eezL8p3ts42txVNvWMSKDkpiCRMBhfcf5c+YFXWbu
|
||||||
|
r5qus2mnVw0hIyYTUdRZIkOcYBalBjewVmGuSIISnUv76vHz133i0zh4JcXHUDqc
|
||||||
|
yLBUgVWckqci32ahy3jc4MdilPeAnjJQcpJVBtMUNTZ4KM7UxLmOa5hYwvooliFJ
|
||||||
|
wUFPB+1ZwN8d+Ly12gRKf8qA/iL8M5H4nQrML2dRJ8NKzP2U73Fw+n6S1ngrDX8k
|
||||||
|
TPhQBq4EDjDyX7SW3Liemj5BCuWJAo53/2cL9P9I5Nu3i2pLJOHzjBSXxWaMMmti
|
||||||
|
kopArlSMWMdsGgb0xYX+aSV7xW+tefYZJY1AFJ1x2ZgfIc+4zyuXnHYA2jVYLAfF
|
||||||
|
pApqwwn8JaTJWNhny/OtAss7XV/WuTEOMWXaTO9nyNmHla9KjxlBkDJG9sCcgYMg
|
||||||
|
aCAnoLRUABCWatxPly9ZlVbIPPzBAr8VN/TEUbceAH0nIwARAQABiQI2BBgBCAAg
|
||||||
|
FiEEJZapnqqzOCGJPAp5RYyoMpV/WGgFAl5UmbgCGwwACgkQRYyoMpV/WGji9w/8
|
||||||
|
Di9yLnnudvRnGLXGDDF2DbQUiwlNeJtHPHH4B9kKRKJDH1Rt5426Lw8vAumDpBlR
|
||||||
|
EeuT6/YQU+LSapWoDzNcmDLzoFP7RSQaB9aL/nJXv+VjlsVH/crpSTTgGDs8qGsL
|
||||||
|
O3Y2U1Gjo5uMBoOfXwS8o1VWO/5eUwS0KH7hpbOuZcf9U9l1VD2YpGfnMwX1rnre
|
||||||
|
INJqseQAUL3oyNl76gRzyuyQ4AIA06r40hZDgybH0ADN1JtfVk8z4ofo/GcfoXqm
|
||||||
|
hifWJa2SwwHeijhdN1T/kG0FZFHs1DBuBYJG3iJ3/bMeL15j1OjncIYIYccdoEUd
|
||||||
|
uHnp4+ZYj5kND0DFziTvOC4WyPpv3BlBVariPzEnEqnhjx5RYwMabtTXoYJwUkxX
|
||||||
|
2gAjKqh2tXissChdwDGRNASSDrChHLkQewx+SxT5kDaOhB84ZDnp+urn9A+clLkN
|
||||||
|
lZMsMQUObaRW68uybSbZSmIWFVM1GovRMgrPG3T6PAykQhFyE/kMFrv5KpPh7jDj
|
||||||
|
5JwzQkxLkFMcZDdS43VymKEggxqtM6scIRU55i059fLPAVXJG5in1WhMNsmt49lb
|
||||||
|
KqB6je3plIWOLSPuCJ/kR9xdFp7Qk88GCXEd0+4z/vFn4hoOr85NXFtxhS8k9GfJ
|
||||||
|
mM/ZfUq7YmHR+Rswe0zrrCwTDdePjGMo9cHpd39jCvc=
|
||||||
|
=AIVM
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
6
salt/sys-tailscale/files/repo/tailscale.sources
Normal file
6
salt/sys-tailscale/files/repo/tailscale.sources
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Types: deb
|
||||||
|
URIs: https://pkgs.tailscale.com/stable/debian
|
||||||
|
Suites: bookworm
|
||||||
|
Components: main
|
||||||
|
Signed-by: /usr/share/keyrings/tailscale.asc
|
||||||
|
# vim: ft=debsources
|
52
salt/sys-tailscale/files/repo/tailscale.yum.asc
Normal file
52
salt/sys-tailscale/files/repo/tailscale.yum.asc
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
=AIVM
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
9
salt/sys-tailscale/files/repo/tailscale.yum.repo
Normal file
9
salt/sys-tailscale/files/repo/tailscale.yum.repo
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
[tailscale-stable]
|
||||||
|
name=Tailscale stable
|
||||||
|
baseurl=https://pkgs.tailscale.com/stable/fedora/$basearch
|
||||||
|
enabled=1
|
||||||
|
type=rpm
|
||||||
|
repo_gpgcheck=1
|
||||||
|
gpgcheck=1
|
||||||
|
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-tailscale
|
||||||
|
# vim: ft=toml
|
|
@ -0,0 +1,8 @@
|
||||||
|
# SPDX-FileCopyrightText: 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
|
||||||
|
binds+=('/var/lib/tailscale')
|
||||||
|
binds+=('/var/cache/tailscale')
|
||||||
|
|
||||||
|
# vim: ft=bash
|
|
@ -0,0 +1,11 @@
|
||||||
|
# SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
# vim: ft=systemd
|
||||||
|
[Unit]
|
||||||
|
ConditionPathExists=/var/run/qubes-service/tailscale
|
||||||
|
After=qubes-sysinit.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=TS_DEBUG_FIREWALL_MODE=nftables
|
||||||
|
Environment=TS_NO_LOGS_NO_SUPPORT=true
|
12
salt/sys-tailscale/init.top
Normal file
12
salt/sys-tailscale/init.top
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'dom0':
|
||||||
|
- match: nodegroup
|
||||||
|
- sys-tailscale.create
|
||||||
|
'tpl-sys-tailscale':
|
||||||
|
- sys-tailscale.install
|
12
salt/sys-tailscale/install-repo.sls
Normal file
12
salt/sys-tailscale/install-repo.sls
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% if grains['nodename'] != 'dom0' -%}
|
||||||
|
|
||||||
|
{% from 'utils/macros/install-repo.sls' import install_repo -%}
|
||||||
|
{{ install_repo(sls_path, 'tailscale') }}
|
||||||
|
|
||||||
|
{% endif -%}
|
9
salt/sys-tailscale/install-repo.top
Normal file
9
salt/sys-tailscale/install-repo.top
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'tpl-sys-tailscale':
|
||||||
|
- sys-tailscale.install-repo
|
56
salt/sys-tailscale/install.sls
Normal file
56
salt/sys-tailscale/install.sls
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 - 2024 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
{% if grains['nodename'] != 'dom0' -%}
|
||||||
|
|
||||||
|
include:
|
||||||
|
- .install-repo
|
||||||
|
- utils.tools.common.update
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-systemd":
|
||||||
|
file.recurse:
|
||||||
|
- name: /usr/lib/systemd/system/
|
||||||
|
- source: salt://{{ slsdotpath }}/files/server/systemd/
|
||||||
|
- dir_mode: '0755'
|
||||||
|
- file_mode: '0644'
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- makedirs: True
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-installed":
|
||||||
|
pkg.installed:
|
||||||
|
- require:
|
||||||
|
- sls: {{ slsdotpath }}.install-repo
|
||||||
|
- sls: utils.tools.common.update
|
||||||
|
- file: "{{ slsdotpath }}-systemd"
|
||||||
|
- install_recommends: False
|
||||||
|
- skip_suggestions: True
|
||||||
|
- pkgs:
|
||||||
|
- qubes-core-agent-networking
|
||||||
|
- qubes-core-agent-passwordless-root
|
||||||
|
- tailscale
|
||||||
|
- bash-completion
|
||||||
|
- man-db
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-unmask-tailscaled":
|
||||||
|
service.unmasked:
|
||||||
|
- name: tailscaled
|
||||||
|
- runtime: False
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-enable-tailscaled":
|
||||||
|
service.enabled:
|
||||||
|
- name: tailscaled
|
||||||
|
|
||||||
|
"{{ slsdotpath }}-bind-dirs":
|
||||||
|
file.managed:
|
||||||
|
- name: /etc/qubes-bind-dirs.d/50-{{ slsdotpath }}.conf
|
||||||
|
- source: salt://{{ slsdotpath }}/files/server/qubes-bind-dirs.d/50-{{ slsdotpath }}.conf
|
||||||
|
- mode: '0644'
|
||||||
|
- user: root
|
||||||
|
- group: root
|
||||||
|
- makedirs: True
|
||||||
|
|
||||||
|
{% endif -%}
|
9
salt/sys-tailscale/install.top
Normal file
9
salt/sys-tailscale/install.top
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
{#
|
||||||
|
SPDX-FileCopyrightText: 2023 Benjamin Grande M. S. <ben.grande.b@gmail.com>
|
||||||
|
|
||||||
|
SPDX-License-Identifier: AGPL-3.0-or-later
|
||||||
|
#}
|
||||||
|
|
||||||
|
base:
|
||||||
|
'tpl-sys-tailscale':
|
||||||
|
- sys-tailscale.install
|
1
salt/sys-tailscale/version
Normal file
1
salt/sys-tailscale/version
Normal file
|
@ -0,0 +1 @@
|
||||||
|
0.0.1
|
Loading…
Add table
Add a link
Reference in a new issue