Alterator-mirror
Название пакета
alterator-mirror
Назначение
Модуль Сервер обновлений предназначен для зеркалирования репозиториев ALT Linux и публикации их для обновлений рабочих станций и серверов.
Модуль позволяет:
- просмотреть информацию о зеркалируемых репозиториях;
- выбрать репозитории для зеркалирования из предложенного списка;
- настроить периодичность зеркалирования;
- настроить параметры каждого зеркалируемого репозитория: источник, архитектура, параметры публикации.
Настройка хранилища репозитория
По умолчанию локальное зеркало репозитория находится в /srv/public/mirror. Для того, чтобы зеркалирование происходило в другую папку необходимо эту папку примонтировать в папку /srv/public/mirror. Для этого в файл /etc/fstab следует вписать следующую строку
/media/disk/localrepo /srv/public/mirror none rw,bind,auto 0 0
где /media/disk/localrepo — папка-хранилище локального репозитория.
Либо отредактировать файл /usr/lib/alterator/backend3/mirror, изменив переменную dest_dir=/media/disk/localrepo
Настройка сервера обновлений
Модуль Сервер обновлений доступен в веб-интерфейсе по адресу https://ip-address:8080 (раздел «Серверы» ▷ «Сервер обновлений»):
На странице модуля можно выбрать, как часто выполнять закачку пакетов, можно выставить время, когда начинать зеркалирование.
Здесь также можно выбрать репозитории, локальные срезы которых необходимы. При нажатии на название репозитория, появляются настройки этого репозитория:
Необходимо выбрать источник, архитектуру процессора (если их несколько, то стоит выбрать соответствующие).
Сервер обновлений предоставляет возможность автоматически настроить обновление клиентских машин в нужном режиме:
- Локальное зеркало репозитория
- В этом режиме на сервере создаётся копия удалённого репозитория. Загрузка ПО клиентскими машинами может производится с локального сервера по протоколам HTTP, HTTPS, FTP, rsync (для каждого протокола нужно настроить соответствующие службы). Наличие на локальном сервере зеркала репозитория при большом количестве машин в сети позволяет существенно сэкономить на трафике.
- Публикация репозитория
- В этом случае публикуется или URL внешнего сервера, содержащего репозиторий или, если включено локальное зеркало репозитория, адрес этого сервера. Такая публикация позволяет клиентским машинам автоматически настроить свои менеджеры пакетов на использование внешнего или локального репозитория.
Уменьшить размер скачиваемых файлов и занимаемое репозиторием место на диске можно, указав имена каталогов и файлов, которые будут исключены из синхронизации. Например, не скачивать пакеты с исходным кодом и пакеты с отладочной информацией:
SRPMS *-debuginfo-*Шаблоны указываются по одному в отдельной строке. Символ «*» используется для подстановки любого количества символов.
Настройка локального репозитория заканчивается нажатием на кнопку «Применить».
Локальное зеркало репозитория
По окончании первой синхронизации репозиторий готов к использованию. Загрузка ПО клиентскими машинами, может производиться с локального сервера по протоколам HTTP, HTTPS, FTP, rsync. На сервере при этом должна быть настроена соответствующая служба.
Настройка веб-сервера
Установить веб-сервер, например nginx:
# apt-get install nginx
Создать файл конфигурации сервера в /etc/nginx/sites-available.d/repo.conf:
server {
listen 80;
server_name localhost .local <ваш ip>;
access_log /var/log/nginx/repo-access.log;
error_log /var/log/nginx/repo-error.log;
location /mirror {
root /srv/public;
autoindex on;
}
}
Сделать ссылку в /etc/nginx/sites-enabled.d/:
# ln -s /etc/nginx/sites-available.d/repo.conf /etc/nginx/sites-enabled.d/repo.conf
Запустить nginx и добавить его в автозагрузку:
# systemctl enable --now nginx
Настройка FTP-сервера
Установить пакет vsftpd:
# apt-get install vsftpd lftp
Настроить параметры использования vsftpd в файле /etc/xinetd.d/vsftpd:
# default: off
# description: The vsftpd FTP server.
service ftp
{
disable = no # включает службу
socket_type = stream
protocol = tcp
wait = no
user = root
nice = 10
rlimit_as = 200M
server = /usr/sbin/vsftpd
only_from = 0.0.0.0 # предоставить доступ для всех IP
}
Перезапустить xinetd:
# systemctl restart xinetd
Изменить настройку прав доступа в файле /etc/vsftpd/conf:
local_enable=YES
Создать каталог /var/ftp/mirror:
# mkdir -p /var/ftp/mirror
Примонтировать каталог/srv/public/mirror в /var/ftp/mirror с опцией --bind:
# mount --bind /srv/public/mirror /var/ftp/mirror
/srv/public/mirror /var/ftp/mirror none defaults,bind 0 0
Настройка rsync-сервера
Установить пакет rsync-server:
# apt-get install rsync-server
Настроить параметры использования rsync в файле /etc/xinetd.d/rsync:
# default: off
# default: off
# description: The rsync server is a good addition to an ftp server,
# as it allows crc checksumming etc.
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
nice = 10
rlimit_as = 16M
server = /usr/bin/rsync
server_args = --daemon
only_from = 0.0.0.0 # предоставить доступ для всех IP
}
Перезапустить xinetd:
# systemctl restart xinetd
Внести изменения в конфигурационный файл /etc/rsyncd.conf:
[mirror]
log file = /var/log/rsyncd/rsyncd.log
comment = Mirror AltLinux P10
path = /srv/public/mirror
read only = true
transfer logging = yes
Использование на стороне клиента
На клиентских машинах необходимо настроить репозитории:
# apt-repo add <Протокол>://<ip сервера>/mirror/p10/branch
Например:
# apt-repo rm all
# apt-repo add http://192.168.0.185/mirror/p10/branch
Проверить правильность настройки репозиториев:
# apt-repo
rpm http://192.168.0.185/mirror p10/branch/x86_64 classic
rpm http://192.168.0.185/mirror p10/branch/noarch classic
Публикация репозитория — использование на стороне клиента
На клиентских машинах необходимо настроить модуль Обновление системы отметив в нем «Обновление системы, управляемое сервером». Процесс обновления будет запускаться автоматически согласно заданному расписанию.
Собственно обновление осуществляется не через общесистемные источники в /etc/apt/sources.list*, а командой
/usr/sbin/sisyphus-updates >/var/log/sisyphus-updates.log 2>&1
конфигурация: /etc/sisyphus-updates/sisyphus-updates.conf
При этом и на сервере и на клиенте должна быть запущена служба avahi-daemon