Немного об apt-cacher-ng

()

Многим в 2019-м году кажется странной необходимость кэширования обращений к серверам обновлений операционных систем, ведь мощные сервера и быстрый интернет кажутся уже чем-то обыденным, но на самом деле всё не так однозначно. Даже мощные сервера с быстрыми SSD-накопителями имеют ограничение по скорости отдачи, а быстрый и безлимитный интернет есть только в больших городах, да и в них он доступен далеко не всем жителям. До сих пор очень много домохозяйств использует медленный и/или небезлимитный интернет.

Интернет для юридических лиц стоит в десятки раз дороже чем для физических и при большом парке машин сервер обновлений в локальной сети позволит экономить заметные деньги и ускорить установку обновлений. Единственный момент, который иногда смущает администраторов, это мобильные сотрудники, которые не всегда работают в офисе. Привязывать их к серверу обновлений в офисной сети значит лишить их возможности получения обновлений в командировках. К счастью для систем на основе Debian/Ubuntu есть достаточно красивое и удобное решение, которое и будет рассмотрено дальше.

Собственно в основе решения достаточно известный сервер Apt-Cacher NG, являющийся прокси-сервером, "заточенным" под работу debian-репозиториями. Установим его:

apt install apt-cacher-ng

По умолчанию apt-cacher-ng "слушает" на всех доступных интерфейсах на порту 3142. Если необходимо "привязать" сервис только к определённым интерфейсам надо в файле "/etc/apt-cacher-ng/acng.conf" указать параметр BindAddress:

BindAddress: 127.0.0.1 192.168.2.1

Следующий важный момент: apt-cacher-ng может работать в двух режимах:

  1. Режим веб-сервера, который указывается на клиентах как адрес репозитория;
  2. Режим прокси-сервера, который указывается на клиентах в настройках прокси;

Первый режим нам не подходит, так как динамически менять адреса репозиториев мы не можем, а во втором режиме есть ограничение на работу с репозиториями, доступными по HTTPS. По умолчанию доступ к таким репозиториям запрещён вообще. Можно указать списки доступа или разрешить весь HTTPS-трафик. Последнее не рекомендуется, поскольку может быть использовано для злоупотреблений со стороны пользователей.

Чтобы указать списки доменов, к которым разрешён доступ по HTTPS создадим файл "/etc/apt-cacher-ng/zzz_override.conf" следующего содержания:

PassThroughPattern: ^download\.sublimetext\.com:443$
PassThroughPattern: ^desktop\.userapi\.com:443$
PassThroughPattern: ^deb\.nodesource\.com:443$
PassThroughPattern: ^repo\.skype\.com:443$
PassThroughPattern: ^deb\.opera\.com:443$
PassThroughPattern: ^fman\.io:443$
PassThroughPattern: ^updates\.signal\.org:443$
PassThroughPattern: ^dl\.winehq\.org:443$
PassThroughPattern: ^download\.01\.org:443$
PassThroughPattern: ^ppa\.launchpad\.net:443$
PassThroughPattern: ^packages\.microsoft\.com:443$
PassThroughPattern: ^download\.opensuse\.org:443$

Разумеется список стоит скорректировать в соответствии с потребностями пользователей. Закончив настройку нужно перезапустить сервис:

systemctl restart apt-cacher-ng.service  

На этом настройка apt-cacher-ng закончена. Теперь осталось "подружить" клиентские машины с нашим сервисом. Здесь нам поможет Zeroconf - набор технологий для автоматического конфигурирования сетей и обнаружения сервисов. На сервере необходимо установить демон Avahi, дополнительная конфигурация для которого уже есть в пакете apt-cacher-ng, потому специально ничего настраивать не надо:

apt install avahi-daemon

На этом конфигурация сервера сервера окончательно завершена. Осталось на все клиентские машины установить пакет squid-deb-proxy-client:

apt install squid-deb-proxy-client

squid-deb-proxy-client содержит в себе утилиту автоматического определения прокси для пакетного менеджера APT. Используя zeroconf ищет в локальной сети apt-cacher-ng и в случае успеха направляет http- и https-запросы от APT через него, в противном случае запросы пойдут напрямую. Таким образом в сети с apt-cacher-ng пользватели будут получать обновления через него, а в других сетях напрямую.

Статистику apt-cacher-ng можно смотреть на странице "http://<ВАШ_СЕРВЕР>:3142/acng-report.html". На той же странице можно и управлять сервисом, например запускать очистку для удаления уже неактуальных пакетов.

Страница статистики apt-cacher-ng

На этом всё. Приятной работы!

Ключевые слова: apt-cacher-ng, apt, proxy, прокси, zeroconf.

Подписаться на обновления: RSS-лента Канал в TamTam Telegram канал Twitter

Комментарии:

Новый комментарий

Жирный текстКурсивный текстПодчёркнутый текстЗачёркнутый текстПрограммный кодСсылкаИзображение




© 2006-2019 Вадим Калинников aka MooSE