Делал по инструкции
http://www.qdesnic.ru/apt-cacher-ng.htmlно под моей ред. для Zetyal.
При росте количества машин с Linux на борту неизбежно возникает вопрос обновления их. Даже при наличии безлимитного канала, трафик на обновление уже переходит из разряда количество в качество. Если необходимо обновить одну, две машины это еще не страшно, но если надо обновлять большой парк устройств - это уже повод "создать" решения для ускорения этого процесса, и экономический эффект от этого решения не последнее дело. Сегодня рассмотрим одно из возможных решений для кэширования обновлений запрашиваемых Debian-based системами (Linux системы основанные на дистрибутиве Debian). Люблю создавать отдельный сервер под конкретное решение, благо виртуализация располагает делать это без финансовых затрат на железо.
Определяем состав задачи:
* Обеспечить максимальное ускорение обновления ОС;
* Сократить расходы на трафик до минимума;
* Не требовать финансовых затрат на оборудование;
Дано для решения задачи:
* ... ничего;
* Свобода идей и великий Гугл;
* Немного "серого вещества";
Серверная часть
На уже установленом и настроенном сервере Zentyal устанавливаем службу apt-cacher-ng
user$ sudo apt-get install apt-cacher-ng
Из сети будет загружено "рекордное"
количество данных - аж 300кБ. Очень радует, что утилита не тянет за собой никаких зависимостей. Собственно настройку тут можно и закончить, все уже подключено и работает, но мы сделаем несколько красивых штрихов. Редактируем конфигурационный файл /etc/apt-cacher-ng/acng.conf:
user$ sudo nano /etc/apt-cacher-ng/acng.conf
Здесь нас интересует только один параметр
...
CacheDir: var/cache/apt-cacher-ng
...
Необходимо заменить путь на тот, где вы собираетесь хранить все кэшированнные пакеты, надо заметить, что apt-cacher-ng не создает специализированных баз непонятного формата, а раскладывает все в том виде как это хранится на сервере источника.
Если переносим папку для кеша, то обязательно надо выставить владельца каталога:
sudo chown apt-cacher-ng:apt-cacher-ng /полный путь/
Если вы изменили конфигурацию, то не забудьте перезапустить сервис:
user$sudo service apt-cacher-ng restart
Стоит обратить внимание, что размер надо предусматривать с запасом - всякое бывает. В моем случае - это отдельное NFS ресурс, выделенный для этой задачи. Что ж настройки сделаны, остальное можно не трогать. Вспомним, что мы не обновляли сам сервер на котором настраиваем кэширование пакетов.
Заходим в web-интерфейс Zentyal:
Файрвол-Фильтр пакетов-Правила фильтрации из внутренних сетей на Zentyal-Настроить правила:
+Добавить ->
Решение: принять
Источник: Любой
Служба: Add new...
-> Имя службы: /usr/sbin/apt-cacher-ng
Описание: "Что хотите"
Добавить
Теперь в "Служба" выбираем добавленную службу
Жмем Добавить.
Сохраняем все изменения.
Настройка клиентов
На всех Debian-based клиентах сообщим apt-get (aptitude) использовать для обновления наш новоиспеченный кэширующий сервер. Для это создадим файл изменения конфигурации установщика пакетов, можете назвать его как вам удобно, главное чтоб он лежал там где надо и имел определенный формат записи.
user$ sudo nano /etc/apt/apt.conf.d/01proxy
поместим в него всего одну строку
Acquire::http { Proxy "http://Адрес_Нашего_Нового_Сервера:3142"; };
Настройка клиентов на этом завершена, можно приступать к обновлению.
user$ sudo apt-get update
user$ sudo apt-get upgrade
Ждем пока все обновится и посмотрим результат использования нашего сервера, отчеты лежат по адресу http://Адрес_Нашего_Нового_Сервера/acng-report.html для примера приведу свой отчет после всего 2х часового использования с 4мя клиентами (Ubuntu Lucid, Ubuntu Maverick, Debian Lenny).
Для анализа лога необходимо нажать на кнопку "Count Data"
Эффективность кэширующего сервера будет расти с каждым запросом клиентов на обновление. Если у вас уже имеется папка содержащая пакеты, которые вы хотите использовать для обновления, то их необходимо загрузить в каталог /var/cache/apt-cacher-ng/_import если вы не меняли путь хранения, иначе указываете /путь/хранения/_import. Создадим каталог импорта и поместим туда пакеты:
user$ sudo mkdir -p /var/cache/apt-cacher-ng/_import
user$ sudo chown apt-cacher-ng /var/cache/apt-cacher-ng/_import
Скопируйте удобным для вас способом все пакеты в этот каталог и на странице отчета http://Адрес_Нашего_Нового_Сервера:3142/acng-report.html нажмите "Start Import". Все содержащиеся там пакеты будут помещены в хранилище и будут предоставлены по первому требованию клиентов. Импорт не будет работать пока через систему не пройдет хотя бы один пакет! (Установите любой пакет, да хоть тот же русский мануал по командам: sudo apt-get install manpages-ru). Во время импорта система проверит обновление известных на момент импорта репозиториев. По окончанию импорта все файлы в каталоге _import будут удалены, имейте это ввиду! Удачи.