Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Обновление сервера без интернета  (Прочитано 6898 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн pauls

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
  • оптимист
    • Просмотр профиля
Обновление сервера без интернета
« : 16 Ноября 2010, 00:09:08 »
Эта тема поднималась много раз но полного решения нет в том числе и на этом форуме

Ситуация следующая: есть глухой (без usb/cdrom/fdd) сервер без выхода в интернет. На нем поднят Ubuntu Server LTS 10.04.01. Архитектура i386. Иксов нет - только консольный режим. Доступ возможен только по SSH.

Задача: настроить регулярное обновление с использованием домашней машины с другой архитектурой и операционкой (Ubuntu Maverik 10.10). Отпадают способы основанные на графическом интерфейсе типа Keryx, APTonCD тоже не приемлим - сервер глухой ;)

Основная трудность возникает с обновлением списка изменений, который получается обычно командой вида
sudo apt-get update
Перерыл весь интернет, готового решения именно для Ubuntu Server LTS 10.04 не нашел. Есть для старых версий Debian, но там даже структура каталогов другая поэтому буду собирать из отдельных кусков информации (которую нарыл) свой алгоритм обновления.

Как мне представляется логика работы должна быть такой

1) На сервере запускаем команду
apt-get -y --print-uris update > source.lstполучаем файл вида
'http://path_1/Sources.bz2' file_name_1 0 :
'http://path_2/Packages.bz2' file_name_2 0 :
'http://path_3/Release.gpg' file_name_3 0 :
...
2) копируем полученный файл к себе на клиента командой вида
scp user@server:/home/user/source.lst ~/source.lst3) записывем его на флешку, тащим в места обетованные, где есть интернет (например домой)
4) дома запускаем скрипт вида
(Нажмите, чтобы показать/скрыть)
итого: в каталоге ./lists образовался набор файлов с актуальными изменениями именно для этого сервера
5) опять сгружаем это все на флешку и тащим обратно
6) с клиентской машины заливаем по SSH каталог /lists на сервер
scp ~/update/lists/* user@server:/home/user/update/lists7) на сервере переименовываем на всякий случай каталог /var/lib/apt/lists в /var/lib/apt/lists.old и копируем принесенный каталог на его место
sudo mv /var/lib/apt/lists /var/lib/apt/lists.old
sudo cp ~/update/lists /var/lib/apt/lists
# копируем файлы и папки непонятного мне назначения, чтобы все было как в оригинале
sudo cp /var/lib/apt/lists.old/partail /var/lib/apt/lists
sudo cp /var/lib/apt/lists.old/lock /var/lib/apt/lists
проверяем права доступа и владельца - должно быть root:root и 644 если что - меняем

8 ) получаем список обновлений командой вида

apt-get -y --print-uris upgrade | grep \.deb | cut -f2 -d"'" > update-deb.lst9) опять добираемся домой прихватив файл update-deb.lst, там скачиваем потребные файлы командой
wget -i update-deb.lstполучаем кучу пакетов

10) переносим эти пакеты на сервер и устанавливаем их командой
sudo dpkg -i *.deb
Данный подход вполне работоспособен НО для каждого обновления нужна куча телодвижений и бегать два дня, а с установкой нового пакета это вообще раздражает. Понадобилось тебе поставить мелочь типа pdf2djvu - извольте сначала четыре раза сбегать.

ВОПРОС: а можно ли этот алгоритм ужать до двух ходок, типа как в Keryx только в терминальном режиме и по SSH? За кривой скрипт прошу не бить - я только четыре месяца как пересел на linux и это мой третий сценарий. Любые советы по его оптимизации только приветствуются.

Оффлайн Mogidin

  • Участник
  • *
  • Сообщений: 193
    • Просмотр профиля
    • Mogidin.Local.Blog
Re: Обновление сервера без интернета
« Ответ #1 : 16 Ноября 2010, 00:13:26 »
взять срез репозитория и забахать его на сервер.
Ubuntu 10.04

Оффлайн pauls

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
  • оптимист
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #2 : 16 Ноября 2010, 00:30:55 »
на сервере ж/д 10 GB, а срез репозитория занимает более 65 GB - не влезет :)
кроме всего прочего срез тоже нужно обновлять, что возвращает нас к исходной проблеме

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #3 : 16 Ноября 2010, 01:13:07 »
Вариант 1.
Пробросить домой ssh, чтоб не бегать. Но машинку придется включенной оставлять.((
Вариант 2.
На рабочем месте apt-get update делать через gprs какой-нибудь. Деньги личные тратить...
Вариант 3.
Взять sources.list с сервера (он, я так понимаю, редко меняется), дома заменить родной sources.list, сделать телодвижения для получения списка обновлений, как описано выше, поставить обратно родной sources.list, сделать apt-get update. Список утащить на сервер. Делать можно скриптом каждый вечер.
Вариант 4, имхо самый реальный.
Дома держать на виртуалке сервер с аналогичным набором софта, перед обновлением почистить кэш пакетов, установить что нужно или обновить, скопировать кэш пакетов на флешку и sudo dpkg -i *.deb на сервере.
Как-то так.
Скрипт работает? Тогда не трогаем, то, что работает)).

Оффлайн Mogidin

  • Участник
  • *
  • Сообщений: 193
    • Просмотр профиля
    • Mogidin.Local.Blog
Re: Обновление сервера без интернета
« Ответ #4 : 16 Ноября 2010, 01:17:25 »
зачем его постоянно обновлять, если он без доступа в интернет? никто его не хакнет.
Ubuntu 10.04

Оффлайн pauls

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
  • оптимист
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #5 : 16 Ноября 2010, 07:14:09 »
2Mogidin
Цитировать
Вариант 1, 2
Нельзя. Не по техническим причинам. Я работаю, мягко скажем, в потустороннем мире и любые связи с внешним ограничены перемещением людей, даже за временный канал информации можно огрести по полной.
Цитировать
Вариант 3.
Разные архитектуры. Мне такого железа не добыть - а так идеальный вариант.
Цитировать
Вариант 4
Сейчас так и есть, но я не знаю что получится когда я заточу ядро на сервере под конкретное железо. Виртуалки то имитировать железо по желанию пока не научились. Скажем VirtualBox имитирует сетевую карту Intel PRO/1000 MT Desktop, а у меня стоит Realtek 8139 и как оно скажется на обновлении? У меня в этом вопросе нет опыта - если у кого есть поделитесь пожалуйста.

А обновлять надо не из-за хака, а из-за исправления багов и ошибок и не только ядра но и всего софта ИМХО.

Оффлайн Molibden

  • Участник
  • *
  • Сообщений: 184
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #6 : 16 Ноября 2010, 08:10:23 »
Вариант 3 как раз пойдет - когда делаешь apt-get update грузиться список всех доступных пакетов в указанных в sources.list репах. Не зависимо от установленных программ и архитектуры. Главное, чтоб apt-get в системе был, и sources.list не перепутать. Это потом, apt-get upgrade выберет из списка то, что нужно.

Цитаты из man apt-get, взял из http://www.opennet.ru/man.shtml?topic=apt-get&category=8&russian=0
(Нажмите, чтобы показать/скрыть)

Больше не знаю что подсказать. Насчет обновлений на сервере - люди могут поспорить, но не им этот сервер выхаживать...
ЗЫ Хоть за старания нормально платят?
ЗЗЫ Перепутал ники в пред. посте, я Моль)

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #7 : 16 Ноября 2010, 08:15:26 »
А обновлять надо не из-за хака, а из-за исправления багов и ошибок и не только ядра но и всего софта ИМХО.
Я конечно извиняюсь: но че за бред? у вас стабильное ядро и стабильный дистр. можно его вообще не обновлять, если он исправно работает. какие задачи под сервер определены?
Цитировать
та тема поднималась много раз но полного решения нет в том числе и на этом форуме
это тема поднималась много раз и решения как правило были, в том числе и на этом форуме

Оффлайн pauls

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
  • оптимист
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #8 : 16 Ноября 2010, 23:02:54 »
2Molibden
Спасибо за ссылку.
По поводу варианта 3. Команда sudo apt-get upgrade обновляет пакет исходя из установленных в системе. На домашней системе с другой архитектурой набор пакетов другой нежели на сервере и скачивать он будет совсем не то что нужно. Вот если бы ему подсунуть информацию об установленных пакетах на сервере... Но я не знаю как это сделать и информации ни здесь ни в гугле не нашел  :-[
ЗЫ А платят нам ровно столько чтоб не уходили.
ЗЗЫ Извините что перепутал ник.

Пользователь решил продолжить мысль 16 Ноября 2010, 23:16:30:
2truegeek
Обновление сервера - это не бред а здоровая параноя  ;D. Ведь если бы все было так замечательно, то и разработчики не утруждали бы себя выпуском обновлений lucid-security и lucid-updates.
А решений подходящих для моего случая я на этом форуме в том числе не нашел. Может быть плохо искал. Если вы знаете где лежит готовое решение, пожалуйста направьте меня. Я ведь не просто крик поднял "Помогите чайнику!" а предложил свой работающий вариант и попросил совета как его улучшить.
« Последнее редактирование: 16 Ноября 2010, 23:16:30 от pauls »

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #9 : 16 Ноября 2010, 23:47:53 »
2truegeek
Обновление сервера - это не бред а здоровая параноя  ;D. Ведь если бы все было так замечательно, то и разработчики не утруждали бы себя выпуском обновлений lucid-security и lucid-updates.
А решений подходящих для моего случая я на этом форуме в том числе не нашел. Может быть плохо искал. Если вы знаете где лежит готовое решение, пожалуйста направьте меня. Я ведь не просто крик поднял "Помогите чайнику!" а предложил свой работающий вариант и попросил совета как его улучшить.
много за четыре месяца вы распознали багов ядра и другого софта??? я не думаю...
так что это не причина для частых обновлений. пример из личного опыта: как то я поднимал домашний смс-шлюз на 8.04 Server LTS. Поставил, обновил, настроил нужные утилиты, все, 2 года я его не обновлял. все работает замечательно.

Если уж никак не подтянуть инет к серверу, то придется бегать с флешкой. Линукс без интернета сами знаете кто ))))

Оффлайн ViTalityU

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #10 : 17 Ноября 2010, 00:58:00 »
поднять репозиторий на машине с которой есть доступ по ssh
максимальный объем репозитория 40Гб
способы
в случае линуховой машины с инетом
1. либо debmirror
2. либо Создание локального репозитория
в случае виндовой машины с инетом
3. либо [HOWTO] Скачиваем репозиторий ubuntu из под windows (bat-скрипт)
4. либо Загрузка и обновление репозитория ubuntu из под windows
чесно говоря прочитал по диагонали,есть ли на машине с которой рулится сервер по ssh интернет? если да то
5. поставьте approx или apt-cacher-ng

Пользователь решил продолжить мысль 17 Ноября 2010, 01:02:41:
хех...забыл как правильно пишется название пакета apt-cacher-ng, полез посмотреть в synaptic и...
наткнулся на пакет apt-offline
Цитировать
apt-offline is an Offline APT Package Manager

apt-offline can fully update and upgrade an APT based distribution without
connecting to the network, all of it transparent to apt


apt-offline can be used to generate a signature on a machine (with no network).
This signature contains all download information required for the apt database
system. This signature file can be used on another machine connected to the
internet (which need not be a Debian box and can even be running windows) to
download the updates.
The downloaded data will contain all updates in a format understood by apt and
this data can be used by apt-offline to update the non-networked machine.

apt-offline can also fetch bug reports and make them available offline

помоему это ваш случай :)
« Последнее редактирование: 17 Ноября 2010, 01:40:53 от ViTalityU »

Оффлайн pauls

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
  • оптимист
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #11 : 17 Ноября 2010, 07:17:27 »
2ViTalityU
Нету у нас на предприятии интернета вообще. И не будет. Репозиторий поднять можно, и наверное так когда нибудь и будет, когда критическая масса машин наберется, а пока обновление только методом flash-net. Поэтому пункты с первого по пятый отпадают.
Про apt-offline я знаю, он написан под Debian и для Ubuntu неприемлим. Собственно оттуда я идею своего скрипта и стянул, тока в apt-offline обновление происходит за два похода, а у меня за 4. Это потому что там на машину с интернетом переносится не только список репозиториев, но и список всего установленного софта, имитируется родная структура каталогов и пол chroot'om происходит обновление с помощью apt-get.
Если бы я знал как, я бы тоже так сделал.
Хотя странно получается, ведь apt-get должен одинаково работать и в Debian и в Ubuntu...

Оффлайн ViTalityU

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #12 : 17 Ноября 2010, 12:40:51 »
Цитировать
про apt-offline я знаю, он написан под Debian и для Ubuntu неприемлим.
всеже сомнительно... Но то что в lucid он не рабочий это да. при попытке запустить вылетает с ошибкой

Оффлайн ViTalityU

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #13 : 21 Ноября 2010, 17:42:37 »
на днях разгребая файлопомойту по имени ~/Загрузки
опнаружил некогда скачанный но так и непрочитанный переведенный на русский номер журнала full circle №32 за 2009 год.
и в нем встретил статью "Автономная установка пакетов", в конце всего прочего известного(aptoncd, ) там рассказывали про утилиту http://keryxproject.org/ . возможно вам подойдет. единственное не уверен есть ли у нее консольный режим...
а чтобы лучше понять что она может прочитайте статью

Оффлайн pauls

  • Автор темы
  • Новичок
  • *
  • Сообщений: 8
  • оптимист
    • Просмотр профиля
Re: Обновление сервера без интернета
« Ответ #14 : 21 Ноября 2010, 23:35:35 »
to ViTalityU я этой прогой (Keryx) пользовался. Она не имеет консольного режима (я это отмечал в начале темы), но все равно спасибо. А решение я нашел. Надо еще пару дней на тесты и опишу здесь. Удовлетворяет всем моим требованиям.  Правда нуждается в первоначальной настройке.

 

Страница сгенерирована за 0.036 секунд. Запросов: 23.