Поиск по сайту:

Настройте локальные репозитории с помощью apt-mirror в системах Ubuntu и Debian


Когда сегодня трафик и обычная скорость интернета измеряются десятками гигабайт даже для обычных интернет-клиентов, какова цель установки локального кэша репозитория в локальной сети, спросите вы?

Одна из причин — снижение пропускной способности Интернета и высокая скорость извлечения пакетов из локального кэша. Но еще одной важной причиной должна быть конфиденциальность. Давайте представим, что клиенты вашей организации ограничены в Интернете, но их Linux-компьютеры нуждаются в регулярных обновлениях системы по программному обеспечению и безопасности или просто нуждаются в новых пакетах программного обеспечения. Если идти дальше, сервер, работающий в частной сети, содержит и обслуживает секретную конфиденциальную информацию только для ограниченного сегмента сети и никогда не должен быть доступен общедоступному Интернету.

Это всего лишь несколько причин, по которым вам следует создать локальное зеркало репозитория в вашей локальной сети, делегировать для этой работы пограничный сервер и настроить внутренних клиентов на извлечение программного обеспечения из зеркала кэша.

Ubuntu предоставляет пакет apt-mirror для синхронизации локального кеша с официальными репозиториями Ubuntu, зеркало, которое можно настроить через HTTP или FTP сервер для совместного использования пакеты программного обеспечения с локальными системными клиентами.

Для полного зеркального кеша вашему серверу необходимо как минимум 120 ГБ свободного места, зарезервированного для локальных репозиториев.

Требования

  1. Мин. 120 ГБ свободного места
  2. Сервер Proftpd установлен и настроен в анонимном режиме.

Шаг 1. Настройка сервера

1. Первое, что вы можете сделать, это определить ближайшие и самые быстрые зеркала Ubuntu рядом с вами, посетив страницу Ubuntu Archive Mirror и выбрав свою страну.

Если в вашей стране имеется больше зеркал, вам следует определить адрес зеркала и провести несколько тестов на основе результатов ping или traceroute.

2. Следующим шагом будет установка необходимого программного обеспечения для настройки локального зеркального репозитория. Установите пакеты apt-mirror и proftpd и настройте proftpd как автономный системный демон.

sudo apt-get install apt-mirror proftpd-basic

3. Теперь пришло время настроить сервер apt-mirror. Откройте и отредактируйте файл /etc/apt/mirror.list, добавив ближайшие местоположения (Шаг 1) – необязательно, если зеркала по умолчанию достаточно быстры или вы не находитесь в них. спешите – и выберите системный путь, по которому следует загрузить пакеты. По умолчанию apt-mirror использует местоположение /var/spool/apt-mirror для локального кэша, но в этом руководстве мы собираемся использовать изменение системного пути и набора точек base_path к местоположению /opt/apt-mirror.

sudo nano /etc/apt/mirror.list

Также вы можете раскомментировать или добавить другой список источников перед директивой очистки, включая источники Debian, в зависимости от того, какие версии Ubuntu используют ваши клиенты. Вы можете добавить источники начиная с 12.04, если хотите, но имейте в виду, что для добавления дополнительных источников требуется больше свободного места.

Списки источников Debian можно найти на странице Debian Wiki или генераторе списков источников Debian.

4. Все, что вам нужно сделать сейчас, это просто создать каталог пути и запустить команду apt-mirror, чтобы синхронизировать официальные репозитории Ubuntu с нашим локальным зеркалом. .

sudo mkdir -p /opt/apt-mirror
sudo apt-mirror

Как вы можете видеть, apt-mirror приступает к индексированию и загрузке архивов, отображающих общее количество загруженных пакетов и их размер. Как мы можем себе представить, 110–120 ГБ — это достаточно много, чтобы загрузка заняла некоторое время.

Вы можете запустить команду ls для просмотра содержимого каталога.

После завершения первоначальной загрузки будущие загрузки будут небольшими.

5. Пока apt-mirror загружает пакеты, вы можете настроить свой сервер Proftpd. Первое, что вам нужно сделать, это создать анонимный файл конфигурации для proftpd, выполнив следующую команду.

sudo nano /etc/proftpd/conf.d/anonymous.conf

Затем добавьте следующее содержимое в файл anonymous.conf и перезапустите службу proftd.

<Anonymous ~ftp>
   User                    ftp
   Group                nogroup
   UserAlias         anonymous ftp
   RequireValidShell        off
  MaxClients                   10
   <Directory *>
     <Limit WRITE>
       DenyAll
     </Limit>
   </Directory>
 </Anonymous>

6. Следующий шаг — связать путь apt-mirror с путем proftpd, запустив привязку монтирования, введя команду.

sudo mount --bind /opt/apt-mirror/mirror/archive.ubuntu.com/  /srv/ftp/

Чтобы проверить это, запустите команду mount без параметра или опции.

mount

7. Последний шаг — убедиться, что сервер Proftpd автоматически запускается после перезагрузки системы и каталога mirror-cache. также автоматически монтируется по пути к FTP-серверу. Чтобы автоматически включить proftpd, выполните следующую команду.

sudo update-rc.d proftpd enable

Чтобы автоматически смонтировать кеш apt-mirror в proftpd, откройте и отредактируйте файл /etc/rc.local.

sudo nano /etc/rc.local

Добавьте следующую строку перед директивой exit 0. Также используйте задержку 5 секунд перед попыткой монтирования.

sleep 5
sudo mount --bind  /opt/apt-mirror/mirror/archive.ubuntu.com/ /srv/ftp/

Если вы извлекаете пакеты из репозиториев Debian, выполните следующие команды и убедитесь, что соответствующие настройки для вышеуказанного файла rc.local включены.

sudo mkdir /srv/ftp/debian
sudo mount --bind /opt/apt-mirror/mirror/ftp.us.debian.org/debian/ /srv/ftp/debian/

8. Для ежедневной синхронизации apt-mirror вы также можете создать задание системного расписания, которое будет запускаться каждый день в 2 часа ночи. Запустите команду crontab, выберите предпочитаемый редактор и добавьте следующий синтаксис строки.

sudo crontab –e

В последней строке добавьте следующую строку.

0  2  *  *  *  /usr/bin/apt-mirror >> /opt/apt-mirror/mirror/archive.ubuntu.com/ubuntu/apt-mirror.log

Теперь каждый день в 2 часа ночи кэш вашего системного репозитория будет синхронизироваться с официальными зеркалами Ubuntu и создавать файл журнала.

Шаг 2. Настройка клиентов

9. Чтобы настроить локальные клиенты Ubuntu, отредактируйте /etc/apt/source.list на клиентских компьютерах, чтобы указать IP-адрес или имя хоста Сервер apt-mirror – замените протокол http на ftp, затем обновите систему.

deb ftp://192.168.1.13/ubuntu trusty universe
deb ftp://192.168.1.13/ubuntu trusty main restricted
deb ftp://192.168.1.13/ubuntu trusty-updates main restricted
## Ad so on….

10. Для просмотра репозиториев вы можете открыть браузер и указать IP-адрес вашего сервера или доменное имя, используя протокол FTP.

Та же система применяется также к клиентам и серверам Debian, единственное необходимое изменение — это зеркало Debian и список исходных кодов.

Кроме того, если вы устанавливаете новую систему Ubuntu или Debian, вручную укажите локальное зеркало по протоколу FTP, когда установщик спросит, какой репозиторий использовать.

Самое замечательное в наличии собственных локальных зеркальных репозиториев заключается в том, что вы всегда в курсе событий, и вашим локальным клиентам не нужно подключаться к Интернету для установки обновлений или программного обеспечения.