Авторские статьи

Apt-cacher-ng.


Есть у меня в хозяйстве админа один помощник, которому не находилось время сказать спасибо. Речь идёт об кэширующем сервисе для пакетов - apt-cacher-ng.

NG в имени - это Next Generation. Был такой предшественник apt-cacher, который требовал apache и тонну еще зависимостей. Apt-cacher-ng в этом плане молодчина. Нетребовательный сервис, который экономит админам время. Официально он экономит трафик, так как если у вас парк серверов под управлением Debian, Ubuntu, OpenSUSE, Fedora Core, Arch Linux, то первый сервер, как ледокол, вытащит кучу нехилых пакетов, а остальные сервера получат львиную долю пакетов из кэша. Но лично я хотел бы сказать спасибо именно за сэкономленное время. Чёрт с ним с трафиком. Без apt-cacher-ng смотреть на одно и тоже качаемое из официальных репозиториев в Интернете - удовольствия мало.

кэширующий пакеты прокси

Естественно, что эффективность apt-cacher-ng возрастает с количеством однотипных серверов. Вот даю что есть у меня на дату написания статьи. Прошу заметить, что здесь статистика только по получению списков доступного софта из официальных репозиториев. На указанный период у меня не было серьёзных обновлений серверов и поэтому цифры такие "скромные".

Period Cache efficiency
  Requests   Data
  Hits Misses Total   Hits Misses Total
2016-11-05 08:52 - 2016-11-06 08:52   644 (28.89%) 1585 (71.11%) 2229   53.21 MiB (74.55%) 18.16 MiB (25.45%) 71.38 MiB
2016-11-04 08:52 - 2016-11-05 08:52   987 (42.16%) 1354 (57.84%) 2341   48.72 MiB (66.33%) 24.73 MiB (33.67%) 73.45 MiB
2016-11-03 08:52 - 2016-11-04 08:52   554 (23.85%) 1769 (76.15%) 2323   61.39 MiB (54.77%) 50.69 MiB (45.23%) 112.07 MiB
2016-11-02 08:52 - 2016-11-03 08:52   890 (39.24%) 1378 (60.76%) 2268   56.89 MiB (69.30%) 25.20 MiB (30.70%) 82.09 MiB
2016-11-01 08:52 - 2016-11-02 08:52   575 (24.77%) 1746 (75.23%) 2321   58.72 MiB (68.57%) 26.92 MiB (31.43%) 85.63 MiB
2016-10-31 08:52 - 2016-11-01 08:52   631 (28.53%) 1581 (71.47%) 2212   27.74 MiB (65.03%) 14.92 MiB (34.97%) 42.66 MiB
2016-10-30 08:52 - 2016-10-31 08:52   781 (35.79%) 1401 (64.21%) 2182   48.56 MiB (78.22%) 13.52 MiB (21.78%) 62.08 MiB

Как говорится - мелочь, а приятно.

Детали рассусо́ливать не буду, так как сервис реально прост. Дам лишь пару советов. Сервис apt-cacher-ng работает отлично и с дефолтными настройками в /etc/apt-cacher-ng/acng.conf, просто запомните порт по умолчанию 3142.

Как указать клиентам использовать сервис? Есть 2 способа и каждый удобен в своём случае:

  • Можно создать файл /etc/apt/apt.conf.d/02proxy и в него вписать
    Acquire::http::proxy "http://_IP_адрес_сервера_apt_cacher_ng:3142";
    Acquire::ftp::proxy "http://_IP_адрес_сервера_apt_cacher_ng:3142";
    

    Данный способ отлично подходит серверам, которые в консоли обновляются администратором вручную или через инструменты оркестровки типа puppet.

  • Второй способ лучше подойдёт для десктопных систем с графическими утилитами, которые в своей работе могут не опираться на apt, а работать с уровнем ниже - dpkg. Нужно просто модифицировать все адреса репозиториев в /etc/apt/sources.list и /etc/apt/sources.list.d/.

    У клиентов в /etc/apt/sources.list меняем строки вида

    deb http://ru.archive.ubuntu.com/ubuntu/ xenial main restricted

    на

    deb http://IP_адрес_apt-cacher-ng:3142/ru.archive.ubuntu.com/ubuntu/ xenial main restricted

    Второй способ выручил в ситуации когда репозиторий доступен только по HTTPS и по умолчанию вы получите отлуп. Параметр PassThroughPattern: .* в /etc/apt-cacher-ng/acng.conf вас выручит, но сделает большую дыру в вашей системе, так как через такой прокси можно не только пакеты deb качать, но и не плохо так сёрфить в Интернете с помощью браузера. Можно уточнить параметр PassThroughPattern и не делать с помощью регулярного выражения .* в системе дыру, но есть способ проще и элегантнее. Репозиторий, доступный через HTTPS, можно указать вот так
    deb http://IP_адрес_apt-cacher-ng:3142/HTTPS///artifacts.elastic.co/packages/6.x/apt stable main

Рекомендую также не стрелять себе в ногу - не обновляйте сервер с apt-cacher-ng через себя самого. Данный сервер должен обновляться напрямую через Интернет.

За долгий срок работы с apt-cacher-ng сталкивался с тем, что обновляться через него не получалось. Просто зайдите браузером на веб-страницу по адресу http://_IP_адрес_сервера_apt_cacher_ng:3142 и нажмите по очереди кнопки Delete unreferenced и Delete damaged.

Если до сего момента не использовали apt-cacher-ng, то при наличии даже пары машин, рекомендую приглядеться к нему и начать спасать свои нервы при установке или обновлении софта.

Дата последней правки: 2023-12-28 15:21:29

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта