Обновление парка машин в закрытом контуре — задача, с которой сталкиваются многие учреждения. При отсутствии локального зеркала каждая машина тянет пакеты из интернета: это медленно, создаёт нагрузку на канал и делает невозможным централизованное обновление при ограниченном доступе. Локальный сервер обновлений решает эту проблему: он один раз скачивает репозиторий Альт Линукс, раздаёт его по HTTP внутри локальной сети, а клиенты подключаются к нему как к обычному источнику APT.

💡 Присоединяйтесь к нашим сообществам!

Будьте в курсе новых статей, обновлений и полезных материалов:

Локальное зеркало — это не просто кэш пакетов. Это единая точка обновления для всего парка машин: вы контролируете, какие пакеты и когда попадают в сеть, экономите интернет-трафик и можете обновлять машины даже при полностью закрытом внешнем канале.

Архитектура решения

В схеме участвуют два ключевых компонента:

  • Сервер обновлений — разворачивается на машине Альт Линукс Образование 11 с адресом 192.168.168.9. Скачивает зеркало ветки p11 в каталог /srv/public/mirror и раздаёт его по HTTP через Nginx.
  • Клиентские машины — подключаются к локальному зеркалу через apt-repo и получают обновления из локальной сети. В качестве примера используется машина k312-07.

Клиенты обращаются к серверу по HTTP, а сам сервер не требует доступа в интернет после первичного скачивания зеркала.

Исходные данные

Компонент Адрес Описание
Сервер обновлений 192.168.168.9 Альт Линукс Образование 11, Alterator-mirror + Nginx
Клиент k312-07 Альт Линукс Образование 11
Ветка репозитория p11 Соответствует Альт Линукс Образование 11
Каталог зеркала /srv/public/mirror/p11/branch Содержит x86_64, noarch, x86_64-i586

Сервер публикует зеркало по HTTP, клиенты подключаются к нему как к единственному источнику.

Архитектура сервера обновлений и клиентов

Рисунок 1. Архитектура сервера обновлений и клиентов

1. Настройка сервера обновлений

1.1. Требования к системе

Минимальные требования к серверу — не менее 100 ГБ дискового пространства (полное зеркало p11 со всеми архитектурами занимает десятки гигабайт). Проверим ресурсы командой:

free -h && df -h /
1.2. Установка Alterator-mirror

В официальном репозитории Альт Линукс присутствует Alterator-mirror. Выполняем:

apt-get install alterator-mirror

Открываем веб-интерфейс Alterator (обычно https://192.168.168.9:8080), переходим в раздел «Серверы» → «Сервер обновлений» и указываем:

Одиннадцатая платформа (p11). Выбираем архитектуру и пункты:

  • Локальное зеркало репозитория.
  • Опубликовать как репозиторий для автоматических обновлений.

Выбор репозитория для скачивания

Рисунок 2. Выбор репозитория для скачивания

И нажимаем «Применить».

Каталог хранения: /srv/public/mirror (значение по умолчанию).

Запускаем скачивание и дожидаемся завершения.

Alterator. Сервер обновлений

Рисунок 3. Alterator. Сервер обновлений

1.3. Проверка структуры зеркала

Убедимся, что зеркало скачано полностью:

ls -la /srv/public/mirror/p11/
ls -la /srv/public/mirror/p11/branch/

Ожидаем увидеть каталоги архитектур:

/srv/public/mirror/p11/branch/
├── files/
├── i586/
├── noarch/
├── x86_64/
└── x86_64-i586/

Внутри каждой архитектуры — подкаталоги base/, RPMS.classic/, RPMS.gostcrypto/.

1.4. Установка Nginx

Устанавливаем веб-сервер:

apt-get install nginx

Создаём конфигурационный файл для публикации зеркала:

cat > /etc/nginx/sites-available.d/repo.conf << 'EOF'
server {
    listen 80;
    server_name 192.168.168.9;

    access_log /var/log/nginx/repo-access.log;
    error_log  /var/log/nginx/repo-error.log;

    location /mirror {
        alias /srv/public/mirror;
        autoindex on;
    }
}
EOF

Активируем конфигурацию и запускаем сервис:

ln -s /etc/nginx/sites-available.d/repo.conf /etc/nginx/sites-enabled.d/
systemctl enable --now nginx
1.5. Проверка установки

Убедимся, что конфигурация корректна и сервис работает:

nginx -t
systemctl status nginx
ss -tlnp | grep ':80 '
curl -I http://192.168.168.9/mirror/p11/branch/

Ответ HTTP/1.1 200 OK означает, что зеркало доступно по HTTP.

1.6. Итоговые URL для клиентов
Назначение URL
Основной репозиторий (x86_64) http://192.168.168.9/mirror/p11/branch/x86_64
Архитектурно-независимые пакеты http://192.168.168.9/mirror/p11/branch/noarch
32-битные пакеты для 64-битной системы http://192.168.168.9/mirror/p11/branch/x86_64-i586
Файлы для установщика http://192.168.168.9/mirror/p11/branch/files/x86_64/

2. Подключение локального репозитория на клиенте

2.1. Определение текущей версии системы

Перед настройкой источников проверяем состояние клиента:

cat /etc/altlinux-release
rpm -q basesystem bash

Если система на p11 (например, ALT Workstation K 11.x) — переходим к настройке источников.

2.2. Настройка источников (для клиентов на p11)

Очищаем текущие источники и прописываем локальное зеркало:

apt-repo rm all
apt-repo add http://192.168.168.9/mirror/p11/branch

Добавляем репозиторий x86_64-i586 (нужен для 32-битных пакетов, например NVIDIA):

echo 'rpm [p11] http://192.168.168.9/mirror p11/branch/x86_64-i586 classic' >> /etc/apt/sources.list

Пояснения к параметрам:

  • apt-repo rm all — удаляет все текущие источники, включая стандартные;
  • apt-repo add — добавляет локальное зеркало (x86_64 и noarch);
  • строка с x86_64-i586 — добавляется вручную, так как apt-repo add некорректно разбирает URL с архитектурой в конце.

Альтернатива одним действием (перезаписывает sources.list целиком):

cat > /etc/apt/sources.list << 'EOF'
rpm [p11] http://192.168.168.9/mirror p11/branch/x86_64 classic
rpm [p11] http://192.168.168.9/mirror p11/branch/noarch classic
rpm [p11] http://192.168.168.9/mirror p11/branch/x86_64-i586 classic
EOF

Проверяем результат:

apt-repo
cat /etc/apt/sources.list

Обновляем индекс пакетов:

apt-get update
2.3. Обновление системы в пределах p11

Выполняем обновление и обновление ядра:

apt-get dist-upgrade
update-kernel
reboot

Управление веб-сервером

Перезапуск Nginx:

systemctl restart nginx

Просмотр логов доступа к зеркалу:

tail -f /var/log/nginx/repo-access.log

Заключение

Выполнив описанные шаги, мы получаем полноценный локальный сервер обновлений: Alterator-mirror отвечает за скачивание репозитория, Nginx — за его раздачу по HTTP, а клиенты подключаются к нему через apt-repo. Обновление парка машин выполняется в закрытом контуре, без нагрузки на внешний канал и с централизованным контролем версий.

Источники

🚀 Понравилась статья?

Подписывайтесь на наши соцсети, чтобы не пропустить новые полезные материалы!

Предыдущая запись