Настройка проталкивающего сервера
Настройка проталкивающего сервера состоит из двух основных задач: настройка rsync
доступа (для нормального, тянущего
зеркалирования) и настройка триггерного механизма ssh
(для проталкивания
тянущего зеркалирования).
(Подробности о том, что такое проталкивающий сервер, читайте в разъяснениях о проталкивающем зеркалировании.)
Настройка rsync
Установите rsync
. Если ваш сайт под управлением Debian, то
просто установите пакет rsync.
Создайте файл rsyncd.conf
и внесите в него что-то подобное этому:
uid = nobody gid = nogroup max connections = 50 socket options = SO_KEEPALIVE [debian] path = /srv/debian/mirror comment = The Debian Archive (https://www.debian.org/mirror/size) auth users = * read only = true secrets file = /etc/rsyncd/debian.secrets
Добавьте запись для каждого сайта, который вы проталкиваете, в файл
/etc/rsyncd/debian.secrets
:
site1.example.com:пароль site2.example.com:ещё_пароль site3.example.net:другой_пароль
Теперь вы даёте нижележащим зеркалам доступ к архиву на вашей
машине. Если вы хотите предоставить доступ через rsync всем, то пропустите
настройку auth users
и secrets file
в
rsyncd.conf
. В этом случае вам не нужны секретные файлы.
Возможно, вы захотите, чтобы служба rsync запускалась из inetd.
Чтобы включить службу добавьте следующую строку в ваш файл
/etc/inetd.conf
:
rsync stream tcp nowait root /usr/bin/rsync rsyncd --daemon
(Не забудьте послать inetd сигнал HUP, чтобы сказать ему перечитать конфигурационный файл после модификации.)
Настройка механизма триггера ssh
С помощью ssh-keygen
создайте новый ssh-ключ для учётной записи,
которую вы используете для зеркалирования Debian. Если у вашей учётной записи уже имеется ключ,
используемый для других целей, то можно создать ещё один и сохранить его в другом файле с помощью
команды ssh-keygen -f ~/.ssh/identity.mysite
На серверах, которые выполняют синхронизацию с вашим сервером в качестве источника,
в их файлы ~/.ssh/authorized_keys
следует добавить следующую строку:
command="~/bin/ftpsync",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty <содержимое вашего файла ~/.ssh/<ключ>.pub>
Вам нужно настроить процесс зеркалирования так, чтобы он связывался с нижележащими серверами по
завершению его синхронизации.
Набор сценариев ftpsync содержит сценарий runmirrors
, который выполняет все
необходимые вам задачи. Просто измените ваш ftpsync.conf так, чтобы он содержал
HUB=true
, скопируйте runmirrors.conf.sample
в
runmirrors.conf
, runmirrors.mirror.sample
в
runmirrors.mirror
и измените файл настроек так, чтобы он подходил вашей системе.
Затем добавьте все ваши нижележащие зеркала в файл runmirrors.mirror, а дуэт ftpsync/runmirror
сделает за вас всю тяжёлую работу.
Это приведёт к тому, что ваша система попытается подключиться по ssh к вашим нижележащим зеркалам после того, как ваше зеркало будет обновлено, так они смогут начать своё обновление. Это предполагает, что вы передадите операторам ваших нижележащих зеркал ssh-ключ, который вы указали при настройке runmirrors, и что они добавят его к свой собственный файл ~/.ssh/authorized_keys, как это было описано выше.
Если у вас появились с этим какие-то проблемы, свяжитесь с нами.