Введение.
Вопросы создания локального репозитория для серверов и рабочих станций Linux в настоящее время становится актуальным. Многие организации, выполняя федеральный закон, не имеют прямого доступа к ресурсам Интернет. Общая сеть предприятия делится на локальную и интернет. В статье блога, рассматриваются методика создания зеркала репозитория (repo), в закрытой сети предприятия.
Подготовка.
- Стенд:
- ALT Linux сервер, имя repo-basic; ip-192.167.100.99;
- ALT Linux сервер, имя repo-local; ip-10.0.2.8;
- ALT Simply Linux: lin-sl, IP=10.0.2.33;
- План создания зеркала репозитория:
- выбор источника repo
- создание копии зеркала repo
- развёртывание локального сервера repo
- выбор устройства для перемещения repo
- копирование репозитория на локальное зеркало
Выбор источника.
В качестве источника репозитория, используем Sysiphus1 (Сизиф) — хранилище имеет хорошею историю среди аналогов. Проект Sysiphus содержит несколько веток (срезов) пакетов, для обновления серверов и рабочих станций, выбираем стабильную ветку, Branch2.
Создание базового зеркала.
Под базовым зеркалом репозитория, подразумеваем сервер «выставленный» в интернет. Задача сервера — по расписанию зеркалировать пакеты с хранилища «Базальт СПО». В качестве базового, используем сервер минимальной конфигурации, о котором говорилось ранние.
Для выполнения задачи устанавливаем модуль обновления ЦУС3.
# apt-get update
# apt-get install alterator-mirror
После подготовки сервера, переходим к конфигурации архитектуры скачиваемых пакетов. В любимом браузере, печатаем адрес ЦУС сервера, где будут храниться пакеты.
Для выбора архитектуры, щёлкнуть по названию репозитория.
В каталоге /srv/public/mirror создаётся папка pX4.
Локальный сервер репозитория.
Локальный сервер устанавливаем по той же инструкции, что и базовый. Этот сервер будет отвечать за обновление рабочих станций и серверов внутри LAN5 предприятия. Для локального сервера необходимо выделить отдельное устройство. Размер дискового пространства должно быть достаточным, чтобы хранить пакеты различной архитектуры.
Размер одного репозитория составляет ~ 100-120Гб
Перемещение репозитория.
Наполнять хранилище repo-local будем с помощью переносного носителя. По условию, сеть Интернет и LAN предприятия разделены. Сейчас рынок предлагает достаточно много переносных устройств хранения информации. Остановимся на одном из них, хорошо зарекомендовавшим себя в работе с большими данными.
Этот портативный SSD6 работает чисто, надёжно, без обрывов, имеет приятную эргономику и дизайн.
Копирование репозитория.
После того как работы по установке, настройке и тестированию комплекса успешно закончены, переходим к копированию. Действия по перемещению repo-basic в repo-local носит рутинный характер. Примерно один раз в неделю, если нет критически важных обновлений, ответственный сотрудник производит операцию зеркалирования, отмечая свои действия в файле README7.
Порядок действия.
- Копирование пакетов с repo-basic на USB8 диск.
- Перемещение пакетов c USB диска на repo-local.
Операцию копирования repo-basic, при создании первой копии, ввиду большого размера хранилища, можно произвести двумя способами:
- С рабочей станции, подключаемся к repo-basic, копировать F5.
- Подключить диск к USB порту repo-basic, копировать F5.
Время копирования зависит от пропускной способности LAN вашего предприятия. В дальнейшем операция зеркалирования будут иметь инкрементальный9 характер — новые версии пакетов добавляются, старые удаляются.
Скрипты.
Для автоматизации выполняемых операций приводятся два сценария — inmir и outmir10. Скрипты inmir и outmir использует возможности утилиты rsync11, при передаче больших объёмов данных.
inmir
Выполняет копирование пакетов сервера repo-basic на usb диск. Скрипт следует поместить в каталог /usr/local/bin сервера repo-basic.
#! /bin/bash
# скрипт inmir
# копирование пакетов branch pX из repo-basic
echo 1.пожалуйста ведите пароль sudo рабочей станции
echo 2.обновление branch pX, пожалуйста ведите пароль пользователя bk
# выполнение копирования\зеркалирования
sudo rsync -r -t -p -o -g -v --progress -l -D bk@repo-basic:
/srv/public/mirror/pX /media/user/usb
- Пояснение:
- pX — текущая ветка branch, пример p10
- bk — уч. запись пользователя выполняющего операцию
- rsync — список используемых ключей:
- -r рекурсия каталогов (копирование под папок и файлов)
- -t сохранять время изменения пакетов
- -p сохранить первоначальные права пакетов
- -o сохранить владельца (только для root)
- -q печать, только ошибки
- -v печатать подробную информацию
- —progress показывать процесс передачи
- -l копировать символические ссылки
- -D сохранять файлы устройств, копировать спец. файлы
- -r рекурсия каталогов (копирование под папок и файлов)
Пользователь выполняющий операцию копирования, должен иметь права на запись.
outmir
После заполнения, диска аккуратно извлекаем и переносим на устройство с repo-local. При создании новой копии хранилища repo-local, выполняем манипуляции, как описывалось выше. В дальнейшем, все операции делаются с консоли рабочей станции по сценарию outmir. Скрипт outmir находится в каталоге /usr/local/bin, сервера repo-local.
#! /bin/bash
# скрипт outnmir
# копирование пакетов branch pX с usb диска
echo 1.пожалуйста ведите пароль sudo рабочей станции
echo 2.обновление branch pX, пожалуйста ведите пароль пользователя bk
# выполнение копирования\зеркалирования
sudo rsync -r -t -p -o -g -v --progress -l -D bk@repo-basic:
/media/user/usb /srv/public/mirror/pX
Заключение.
Формирование локального репозитория в закрытой LAN сети, позволит защитить устройства вычислительной сети предприятия от атак из Интернета. Теперь у администратора появляется локальное хранилище пакетов, постоянно готовое к работе. Требования ФЗ12 предусматривает создание локального зеркало из таких источников как Sysiphus13. Операция копирования пакетов производится один раз в неделю, если нет критически важных обновлений. В каталог mirror, repo-local, можно поместить файл README.
Полезные ссылки.
- создание локального репозитория РЕДОС
- Создание локальных и сетевых репозиториев Astra Linux
Сноски.
- репозитория свободного ПО ↩︎
- стабильные ветки репозитория пакетов ALT Linux создаются на основе нестабильного репозитория Sisyphus ↩︎
- вэб интерфейс, центра управления системой ↩︎
- X — версия репозитория. ↩︎
- Local Area Network — локальная вычислительная сеть ↩︎
- Solid State Drive – твердотельный накопитель ↩︎
- записываем дата, время копии ↩︎
- Universal Serial Bus — универсальная последовательная шина ↩︎
- к исходной копии пакетов пошагово приписываются дополнения ↩︎
- стендовое название ↩︎
- быстрый и универсальный инструмент для копирования и зеркалирования файлов. ↩︎
- федеральный нормативный правовой акт Российской Федерации ↩︎
- включён в Единый реестр российских программ для электронных вычислительных машин и баз данных ↩︎