![]() |
Модераторы: powerfox, ZeeLax |
![]() ![]() ![]() |
|
ZeeLax |
|
||||||||||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4388 Регистрация: 20.8.2006 Где: Алма-Ата Репутация: 7 Всего: 88 |
Введение
Процесс обновления большого количества машин (как серверов, так и рабочих станций) всегда представлял из себя нетривиальную задачу - необходимо получить новые версии пакетов программ (желательно, в формате вашего менеджера пакетов), распространить копии пакетов на все машины в сети (причем, для каждой из машин часто необходим "свой" набор пакетов), произвести установку обновлений. При установке ОС на новый сервер, тоже возникали проблемы - необходимо установить имеющуюся версию дистрибутива "наложив" полученные ранее обновления описанным выше способом, или же, загрузить iso-образ новой версии дистрибутива. Менеджеры пакетов современных дистрибутивов Linux облегчают процесс обновлений. Всё, что вам необходимо - это интернет-канал и небольшая настройка менеджера пакетов на использование необходимого набора пакетов и ближайших к вам зеркал. Менеджер пакетов сам определит пакеты, требующие обновления и их зависимости, загрузит всё это из сети и произведет установку. Установка новой системы также может происходить из сети. Предисловие В моей организации большая часть серверов находится под управлением дистрибутива Debian GNU/Linux, использующего систему пакетов APT, следовательно, рассматривать я буду именно её. Если вы используете другой дистрибутив, не спешите закрывать статью - основная идея может быть воспроизведена во многих современных дистрибутивах. Описание системы APT выходит за рамки данной статьи (и превосходит её по размеру ![]() Когда для подсчета серверов перестало хватать пальцев на руках, а география расположения расширилась от "одной серверной стойки" до "города и его окрестностей", совместно с коллегой было найдено решение, позволяющее своевременно обновлять ПО, не загружая при этом каналы интернет. Даже если имеется безлимитный высокоскоростной канал, всё равно не вижу смысла загружать его (каналы провайдеров, сервера Debian) обновлениями. Итак, решение состоит всего из двух пакетов - apt-proxy и jigdo. Первый используется для создания общего хранилища пакетов, а второй - для поддержания "свежести" iso-образов дистрибутивов Debian для установки новых систем, раздачи коллегам, друзьям и т.п. Но, обо всём по порядку. Apt-proxy Сеть организации в большинстве случаев обладает большей пропускной способностью, чем имеющиеся каналы интернет. Относительно стоимости - даже арендованные каналы обходятся дешевле публичных каналов интернет. В такой сети очень удобно иметь локальный сервер обновлений, находящийся на сервере, непосредственно подключенном к интернету и имеющим связь с другими серверами и DMZ. Apt-proxy является прокси-сервером особого типа, предназначенным специально для "общения" клиентов с зеркалами обновлений. Почему бы просто не воспользоваться обычным кэширующим прокси-сервером, спросите вы? Вот несколько причин:
Установка
Настройка Все параметры содержаться к конфигурационном файле /etc/apt-proxy/apt-proxy.conf (или /etc/apt-proxy/apt-proxy-v2.conf). Пример файла /etc/apt-proxy/apt-proxy-v2.conf
В секции DEFAULT содержатся общие настройки, смысл которых ясен из названий и комментариев. Все остальные секции являются описаниями ресурсов, упомянутых выше. Каждый ресурс содержит данные определенных репозиториев Debian. В примере выше debian - основной репозиторий, security - репозиторий обновлений безопасноти. Также необходимо внести соответствующие изменения в файлы /etc/apt/sources.list на клиентских машинах. Формат записи таков: deb http://адрес-apt-proxy/ресурс дистрибутив секция1 секция2. Пример исходного файла sources.list
Пример файла после перенастройки:
Использование Пользоваться APT нужно так же как и раньше.
Все скачиваемы пакеты будут кэшироваться apt-proxy. По-умолчанию кэш располагается в директории /var/cache/apt-proxy. Jigdo Казалось бы, на этом можно и остановиться. Кэш растёт, интернет трафик остаётся достаточно стабильным, независимо от количества обновляемых машин - всем хорошо. Но, мы решили пойти немного дальше, вспомнив о том, что неплохо было бы иметь свежие iso-образы дистрибутивов. Установка дома (где медленный DSL-канал), неожиданная командировка, поднятие сайта, удаленного географически, с последующим подключением (расширением) интернет-каналов - всё это требует наличия большого количества пакетов под рукой. Чем и является iso-образ в "отрезанном" на CD/DVD виде. ISO-образ можно загрузить из интернета как обычно, по протоколу HTTP или FTP. Для уменьшения нагрузки на серверы Debian можно воспользоваться протоколом BitTorrent. Но, какой бы из этих методов вы не выбрали - всё равно придётся загрузить ВЕСЬ ISO-образ, даже если от релиза к релизу изменилось всего несколько десятков файлов (на одном образе DVD содержится около 4000 файлов). Альтернативой является метод с использованием Jigdo. Схема проста: вы скачиваете два файла - файл .jigdo и файл .template. .template-файл представляет собой "шаблон" необходимого образа, содержащий загрузочную область, таблицу размещения файлов, описания каталогов и другие данные, не являющиеся пакетами Debian. Файлы пакетов заменены их контрольными суммами. Файл .jigdo содержит набор контрольная-сумма=имя-файла. Во время работы, утилита воссоздаёт iso-образ из .template файла. После этого, она начинает заполнять "пустые" области файлами, скачивая их из сети. Если у вас уже имеются некоторые файлы, необходимые для данного образа (например, предыдущий релиз дистрибутива), то вы можете указать утилите директорию для поиска файлов. Если таковые будут найдены (совпадает имя, размер и md5-сумма), они будут включены в образ без скачивания из сети. Таким образом, можно организовать, так называемое "инкрементное обновление" ISO-образов, значительно снижающее объём трафика и нагрузку на серверы Debian. Преимущества jigdo перед "обычной" загрузкой образов:
Никакой специальной настройки пакета не требуется. Так как мы собираемся только скачивать нужные образы, мы будем пользоваться только утилитой jigdo-lite. Для начала работы, нам понадобятся два файла - .jigdo файл и файл .template. Ссылки на эти файлы можно получить на сайте debian.org или напрямую найти их на зеркалах в директориях jigdo-cd или jigdo-dvd. Получив файлы, запускаем jigdo-lite, передав в качесвте пераметра имя .jigdo файла
Утилита определит имя образа и предложит нам указать каталог, в котором она может найти необходимые файлы. Также можно просто выбрать соответствующий номер пути, введенного ранее. В нашем случае, я монтирую предыдущий образ в директорию /mnt/cdrom
и выбираю первый путь, вводом единицы. Далее, можно хлебнуть кофе, т.к. поиск займёт какое-то время. После поиска, получаем:
Найдя нужные файлы, утилита запишет их в образ. Для поиска недостающих файлов, она ещё раз запросит у вас путь. В данном случае, так как файлов у нас больше нет, нажимаем enter, получая запрос на выбор зеркала. По умолчанию используются зеркала из sources.list.
Далее, опять нажимаем enter и идём пить пиво с друьями, т.к. в зависимости от ширины вашего канала и "разницы" в релизах загрузка может занять приличное время. По завершении процесса, утилита проверит контрольную сумму всего образа и, если всё верно, предоставит вам iso-файл, готовый к использованию. Просто, не правда ли? Послесловие Внимательный читатель, должен был заметить, что в последнем примере содержится ссылка на "интересное" зеркало Debian.
Да. Вы правильно догадались. Мы объединили эти два замечательных метода получив:
Ссылки Официальный сайт Debian GNU/Linux Домашняя страница apt-proxy Debian jigdo mini-HOWTO За время написания этой статьи автором были получны ISO-образы Debian Testing DVD-1 и DVD-2, посредством преобразования "предпоследнего" релиза в "последний". Это сообщение отредактировал(а) ZeeLax - 23.10.2007, 18:08 -------------------- Utility is when you have one telephone, luxury is when you have two, opulence is when you have three — and paradise is when you have none. — Doug Larson |
||||||||||||||||||||||
|
|||||||||||||||||||||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 1 Всего: 162 |
Отличная статья! Про apt-proxy я слышал раньше, но и тут было полезно, про jidgo услышал впервые.
Блин, где тут можно + за статью поставить? |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
Очень интересно. +1!
Особенно за это. Настоящий линуксоид всегда думает о других! |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Linux/UNIX: Администрирование" | |
|
Этот форум предназначен для решения вопросов по администрации *n?x-систем, в частности по настройке сложных сетей и обслуживанию серверного оборудования.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Администрирование *NIX систем | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |