TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #2413 7.98K
Расскажу вам про одну старую и полезную программу в Linux. Обычно её используют в контексте построения кластеров, когда нужно быстро распространить конфигурационные файлы по разным машинам и держать их в единообразном виде. Но на самом деле из-за скорости и простоты настройки её можно использовать и в более простых задачах. Например, для раскладывания свежих сертификатов Let's Encrypt после их обновления.

Речь пойдёт про программу csync2. В Debian она давно живёт в базовых репозиториях:

# apt install csync2

Настройка аутентификации основана на pre-shared-keys, которые можно сгенерировать самостоятельно с помощью openssl. Дальше ключи раскидываются по серверам и пишется конфиг в несколько строк. Причем csync2 умеет не только синхронизировать файлы, но и перезапускать службы, что очень удобно в случае с сертификатами, так как можно после обновления сразу перезапустить веб-сервер или что-то ещё.

Конкретные примеры показывать не буду, так как программа старая и довольно известная. В сети очень много готовых мануалов для неё, которые можно адаптировать под свои потребности. Базовый конфиг с синхронизацией файлов и перезапуском сервисов выглядит примерно так:

group websrv
{
    host node01 node02;
    auto younger;  
    key /etc/csync2.key;
    include /etc/letsencrypt/;

    action
    {
        pattern /etc/letsencrypt/*;
        exec "nginx -s reload";
        do-local;
        logfile "/var/log/csync2_action.log";
    }
}

Выполнение синхронизации csync2 можно ставить в post_hook. Она в случае изменения сертификатов в папке /etc/letsencrypt/ выполнит обновление файлов и перезапуск nginx на всех машинах с идентичным конфигом. Если где-то надо перезапустить nginx, а где-то postfix, то это настраивается отдельно.

У меня, к примеру, были случаи, когда один и тот же сертификат mail.example.com использовался на почтовом сервере для postfix, на веб сервере для браузерного клиента, а получение было на пограничном nginx. То есть с него нужно было раскидать сертификаты на 2 других сервера. Я это делал с помощью nfs, монтируя директорию с сертификатами всем зависимым серверам. С csync2 это реализовать проще и удобнее.

⇨ Исходники / Документация

#linux
GitHub GitHub - LINBIT/csync2: file synchronization tool using librsync and current state databases file synchronization tool using librsync and current state databases - LINBIT/csync2
  • 👍 62
  • 👎 1
More from @srv_admin
  1. Sep 25, 2026▶️ Очередная подборка авторских IT роликов, которые я лично посмотрел и посчитал интересны…
  2. Sep 25, 2026Девопсы, сисадмины, архитекторы, техлиды (и вообще все, кто принимает технические или бизн…
  3. Sep 25, 2026Подписчик поделился полезным проектом - Webtop. Это Linux дистрибутив с графикой, упакован…
  4. Sep 24, 2026Траблшутинг - мастхэв компетенция для инженера В Rebrain траблшутинги проводят уже несколь…
  5. Sep 23, 2026Очередная подборка статей авторов, которые согласились в ней участвовать. Кто не понимает,…
  6. Sep 23, 2026Контейнеры в одном инструменте, виртуалки — в другом, частное облако — вообще отдельная ис…
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 →