TGViewer
этогик // DevOps, Infrastructure, Productivity этогик // DevOps, Infrastructure, Productivity @etogeek · 4.38K subscribers
Post #367 1.88K
Чтобы немного подвести итог серии постов про бекапы (раз и два), расскажу как я ими управляю в своей инфрастркутуре.

Основная цель такого поста не показать единственный способ "как правильно" (такого нет), а поделиться моим опытом, из которого вы можете подцепить какую-нибудь идею и реализовать у себя.

В общем, конечно же, я делаю это через ansible. У меня есть довольно сильно параметризируемая роль backups. В директории files я складываю bash-скрипты в сыром виде. Можно их там разбить на под-директории, чтобы было больше порядка.

В инвентори у нужных хостов я описываю бекап по следующей структуре:
backups: # список - можем описать несколько бекапов
- name: billing_db_backup
user: root # под каким юзером запускаем
scripts:
- script: billing_db_backup.sh # название скрипта из files
script_dest: /etc/billing/scripts # куда положить скрипт
schedule: { hour: 2, minute: 30 } # cron-расписание
job: /etc/billing/scripts/billing_db_backup.sh # cron-команда
create_dir: # если нужно создать директории
- path: /etc/billing/scripts
mode: '0750'
- path: /var/lib/billing/backups
mode: '0700'
env:
PGPASSWORD: >-
{{ длинный и некрасивый lookup, чтобы забрать пароль из Infisical }}


Что роль сделает:
- создаст директории
- скопирует скрипт как есть
- срендерит env файлик с паролем из Infisical (в скрипт надо добавить . env)
- добавит расписание в cron

Почему скрипты в files, а не в templates? Потому что некоторые скрипты могут конфликтовать с рендером Jinja который используется в шаблонах. Надежнее их положить в files в том виде, в котором они есть и попадут на машину.
  • 👍 17
  • 🔥 4
  • ❤ 1
  • 🎄 1
More from @etogeek
  1. Sep 4, 2026Баланс в EdTech Подписан на канал Mischa van den Burg и там недавно вышло видео, где автор…
  2. Aug 25, 2026Мониторинг бекапов В прошлый раз я говорил про PITR-бекапы для PostgreSQL, теперь хочу нем…
  3. Aug 21, 2026Про бекапы. Хочу немного поделиться своим опытом в нескольких постах. Это больше информаци…
  4. Aug 13, 2026Когда я преподавал в Практикуме (был такой период, да. еще и видео снимал), студенты часто…
  5. Jun 25, 2026Некоторое время назад столкнулся с тем, что какой-то сервис отправил мне огромное количест…
  6. Jun 11, 2026Уже довольно давно я сталкиваюсь с плавающими проблемами связи между Яндекс Облаком и Hetz…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →