apt-mirror

Редактировал(а) Сергей Евстегнеев 2023/02/14 17:46

В статье рассмотрено создание зеркала репозитория в ЛВС ИС/АС на примере репозиториев ОСнова onyx с использованием инструмента apt-mirror и nginx.
Предполается, что имя хоста, на котором выполняется установка, mirror.local.

Создание зеркала репозитория с помощью apt-mirror

  1. Если отсутствуют реквизиты доступа (user password) к репозиториям dl.nppct.ru, получить их в службе поддержки;
  2. Установить apt-mirror, выполнив команду:
    $ sudo apt install apt-mirror
  3. Произвести настройку зеркалирования репозиториев, загрузив конфигурационный файл /etc/apt/mirror.list командой:
    $ sudo wget 
    и отредактировав конфигурационный файл /etc/apt/mirror.list, раскомментировав следующие строки и указав необходимые параметры:
    • set base_path /var/spool/apt-mirror - базовый каталог, в котором хранятся зеркала репозиториев, рабочие файлы и каталоги системы apt-mirror;
    • set nthreads 20 - количество потоков(задач) для скачивания пакетов;
    • deb https://user:password@dl.nppct.ru/onyx/stable/repos/disk1/  onyx  main contrib non-free
      deb https://user:password@dl.nppct.ru/onyx/stable/repos/disk2/  onyx  main contrib non-free

      репозитории основных дисков для зеркалирования;
    • deb https://user:password@dl.nppct.ru/onyx/stable/repos/devel-disk1/  onyx  main contrib non-free
      репозиторий диска со средствами разработки для зеркалирования, где user password;
    • clean http://repo
      Данная опция необходима для удаления пакетов из локального зеркала репозитория, если пакеты были удалены в зеркалируемом(upstream) репозитории repo;
      Для ОСНова onyx данная строчка будет выглядеть следующим образом:
      • clean https://dl.nppct.ru/onyx/stable/repos/disk1/
        clean https://dl.nppct.ru/onyx/stable/repos/disk2/

        репозитории основных дисков;
      • clean https://dl.nppct.ru/onyx/stable/repos/devel-disk1/
        для репозитория диска со средствами разработки;
  4. Выполнить команду apt-mirror для зеркалирования репозиториев от имени пользователя apt-mirror:
    $ sudo -u apt-mirror apt-mirror
    После окончания работы, зеркалируемые репозитории будут располагаться в каталоге, указанном в переменной base_path, для приведенной вышек конфигурации /var/spool/apt-mirror
  5. Для переодического зеркалирования репозиториев необходимо активировать задание cron, для этого отредактировать файл /etc/cron.d/apt-mirror, раскомментировав строку
    0 4    * * *   apt-mirror      /usr/bin/apt-mirror > /var/spool/apt-mirror/var/cron.log
    При необходимости изменить время выполнения задания (по умолчанию - в 04:00 каждый день).  

Раздача зеркала репозитория с помощью nginx

  1. Установить веб-сервер nginx, выполнив команду:
    $ sudo apt install nginx
  2. Удалить конфигурацию по умолчанию, выполнив команду:
    $ sudo rm /etc/nginx/sites-enabled/default  
  3. СОздать файл конфигурацию mirror.local, выполнив команду:
    $ sudo wget
  4. Верифицировать конфигурацию mirror.local, выполнив команду:
    $ sudo nginx -t
  5. Активировать конфигурацию mirror.local, выполнив команду:
    $ ln -s /etc/nginx/sites-available/mirror.local /etc/nginx/sites-enabled/
  6. Перезагрузить конфигурацию nginx, выполнив команду:
    $ sudo systemctl reload nginx

Настройка apt-репозиториев на клиенте

  1. Закоменитровать в файле /etc/apt/sources.list строки с установочными дисками ОС:
    #deb cdrom:[OSNova Linux onyx - amd64 DVD disk1]/ onyx contrib main non-free
    #deb cdrom:[OSNova Linux onyx - amd64 DVD disk2]/ onyx contrib main non-free

    либо удалить файл /etc/apt/sources.list:
    $ sudo rm /etc/apt/sources.list
  2. Подключить основные apt-репозитории, расположенные на mirror.ct, для этого выполнить:
    $ sudo wget https://dl.nppct.ru/onyx/stable/misc/apt-mirror/sources.list.d/onyx:mirror.local.list \
    -P /etc/apt/sources.list.d/

    Или загрузить файл https://dl.nppct.ru/onyx/stable/misc/apt-mirror/sources.list.d/onyx:mirror.local.list, отредактировать и поместить его в каталог /etc/apt/sources.list.d/;
  3. При необходимости, подключить apt-репозитории со средствами разработки, расположенные на dl.nppct.ru, для этого выполнить:
    $ sudo wget https://dl.nppct.ru/onyx/stable/misc/apt/sources.list.d/onyx-devel:dl.nppct.ru.list \
    -P /etc/apt/sources.list.d/
  4. Подключить тестируемый apt-репозиторий обновлений, расположенный на dl.nppct.ru, для этого выполнить:
    $ sudo wget https://dl.nppct.ru/onyx/testing/misc/apt/sources.list.d/onyx-testing-upd:dl.nppct.ru.list \
    -P /etc/apt/sources.list.d/
  5. При необходимости подключить тестируемый apt-репозиторий обновлений средств разработки, расположенный на dl.nppct.ru, для этого выполнить:
    $ sudo wget https://dl.nppct.ru/onyx/testing/misc/apt/sources.list.d/onyx-testing-upd-devel:dl.nppct.ru.list \
    -P /etc/apt/sources.list.d/