Tailscale Exit Node #1145
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tailscale Exit Node | |
on: | |
# Ручной запуск воркфлоу | |
workflow_dispatch: | |
push: | |
# Автозапуск ноды при изменении этого воркфлоу | |
paths: | |
- '/.github/workflows/*' | |
schedule: | |
# Запускает задание каждые 4 часов | |
- cron: '0 */4 * * *' | |
jobs: | |
deploy: | |
# Запуск на облачной Ubuntu в MS Azure | |
runs-on: ubuntu-latest | |
timeout-minutes: 240 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Установка Tailscale | |
run: | | |
# Выполнение автоустановки по скрипту с "https://tailscale.com/download" | |
curl -fsSL https://tailscale.com/install.sh | sh | |
# Включение IPv4-форвардинга для корректной работы Exit-Node согласно "https://tailscale.com/kb/1019/subnets/" | |
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf | |
echo 'net.ipv6.conf.all.forwarding = 1' | sudo tee -a /etc/sysctl.conf | |
sudo sysctl -p /etc/sysctl.conf | |
- name: Авторизация в Tailscale и настройка Exit Node | |
env: | |
# Предварительно нужно получить токен на "https://login.tailscale.com/admin/settings/keys" и указать его в секрете вашей репы | |
TAILSCALE_AUTH_KEY: ${{ secrets.TAILSCALE_KEY }} | |
# Предварительно нужное имя машины нужно добавить в секрет HOSTNAME | |
HOSTNAME: ${{ secrets.HOSTNAME }} | |
run: | | |
# Аутентификация с использованием нашего ключа, сохраненного в секретах GitHub | |
sudo tailscale up --authkey=${TAILSCALE_AUTH_KEY} --advertise-exit-node --accept-routes --hostname=${HOSTNAME} | |
# Удерживаем процесс на 4 часа (бесплатный максимум) | |
sleep 14400 | |
# Отключаем от Tailscale | |
sudo tailscale down | |
- name: Очистка | |
if: always() | |
run: | | |
sudo tailscale down | |
sudo tailscale logout |