ivalexander 6f6a75ac8b
Deploy Traefik dynamic configuration / deploy (push) Successful in 9s
fix: change script
2026-07-12 22:49:04 +03:00
2026-07-12 22:43:34 +03:00
2026-07-12 22:43:34 +03:00
2026-07-12 22:43:34 +03:00
2026-07-12 22:49:04 +03:00
2026-07-12 22:43:34 +03:00
2026-07-12 22:43:34 +03:00

Traefik dynamic configuration

Этот репозиторий — источник истины для пользовательских динамических маршрутов Traefik на infra-vm.

Traefik уже настроен читать файлы из /opt/stacks/traefik/dynamic и следить за изменениями. Перезапуск контейнера после деплоя не требуется. Файл security.yml с общими middleware создаётся Ansible из репозитория infra-vm и этим проектом не изменяется.

Добавление маршрута

Добавьте в каталог dynamic файл с расширением .yml или .yaml, например:

http:
  routers:
    example:
      rule: Host(`example.4vkamnyam.ru`)
      entryPoints: [websecure]
      tls:
        certResolver: letsencrypt
      middlewares: [secure-headers]
      service: example

  services:
    example:
      loadBalancer:
        servers:
          - url: http://192.168.1.50:8080

Имена routers, services и middlewares должны быть уникальны среди всех файлов. Ссылки внутри file provider не требуют суффикса @file. Имя security.yml зарезервировано за Ansible.

Проверить изменения локально можно командой:

./scripts/validate.sh

Настройка Gitea Actions

Workflow .gitea/workflows/deploy.yml запускается при изменении конфигурации в ветке main, а также вручную. В настройках репозитория создайте Actions secrets:

  • DEPLOY_HOST — адрес ВМ, сейчас 192.168.1.109;
  • DEPLOY_USER — SSH-пользователь, сейчас alexander;
  • DEPLOY_SSH_PRIVATE_KEY — отдельный приватный ключ для деплоя;
  • DEPLOY_SSH_KNOWN_HOSTS — строка known_hosts для ВМ, полученная по доверенному каналу, например локальной командой ssh-keyscan -H 192.168.1.109 с последующей ручной сверкой fingerprint.

Публичную часть ключа добавьте в ~alexander/.ssh/authorized_keys на ВМ. Runner с меткой ubuntu-latest должен иметь Docker, ssh и scp.

Workflow хранит на ВМ manifest файлов, которыми управляет репозиторий. Поэтому удаление YAML из Git удалит его и на ВМ, но security.yml и другие файлы вне manifest останутся нетронутыми.

S
Description
No description provided
Readme 29 KiB
Languages
Shell 100%