Как создать локальный репозиторий Linux.

Введение.

Вопросы создания локального репозитория для серверов и рабочих станций 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.

Порядок действия.

  1. Копирование пакетов с repo-basic на USB8 диск.
  2. Перемещение пакетов c USB диска на repo-local.

Операцию копирования repo-basic, при создании первой копии, ввиду большого размера хранилища, можно произвести двумя способами:

  1. С рабочей станции, подключаемся к repo-basic, копировать F5.
  2. Подключить диск к 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 сохранять файлы устройств, копировать спец. файлы

Пользователь выполняющий операцию копирования, должен иметь права на запись.

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.

Полезные ссылки.

Сноски.

  1. репозитория свободного ПО ↩︎
  2. стабильные ветки репозитория пакетов ALT Linux создаются на основе нестабильного репозитория Sisyphus ↩︎
  3. вэб интерфейс, центра управления системой ↩︎
  4. X — версия репозитория. ↩︎
  5. Local Area Network — локальная вычислительная сеть ↩︎
  6. Solid State Drive – твердотельный накопитель ↩︎
  7. записываем дата, время копии ↩︎
  8. Universal Serial Bus — универсальная последовательная шина ↩︎
  9. к исходной копии пакетов пошагово приписываются дополнения ↩︎
  10. стендовое название ↩︎
  11. быстрый и универсальный инструмент для копирования и зеркалирования файлов. ↩︎
  12. федеральный нормативный правовой акт Российской Федерации ↩︎
  13. включён в Единый реестр российских программ для электронных вычислительных машин и баз данных ↩︎

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Copyright © 2011-2024
Все права защищены.
При перепечатке указать источник: kabtim.ru
Контакты