Как удаленно установить Linux через SSH?


22

Мне нужно удаленно установить Ubuntu Server 10.04 (x86) на сервер, на котором в данный момент работает RHEL 3.4 (x86). Я должен быть очень осторожным, потому что никто не может нажать кнопку перезагрузки для меня, если что-то пойдет не так.

Вы когда-нибудь устанавливали удаленно Linux? Какой способ вы бы порекомендовали? Какой-нибудь совет для вещей, чтобы остерегаться?


Обновить:

Спасибо за вашу помощь. Мне удалось «поменять резину за рулем» !

Основные компоненты моего метода взяты из HOWTO - Установка Debian в удаленную систему Linux , устаревшее grub: однократная загрузка , одиночная загрузка grub и паника ядра , а также документация сообщества Ubuntu: InstallationFromKnoppix

Вот схема того, что я сделал:

  1. Запустите debootstrap на существующем сервере Ubuntu
  2. Перенесите файлы в раздел подкачки сервера RHEL 3.4
  3. Загрузитесь в раздел подкачки (система debootstrap)
  4. Перенесите файлы в исходный корневой раздел
  5. Загрузитесь в новую систему Ubuntu и завершите установку с помощью tasksel, apt-get и т. Д.

Я проверил метод в виртуальной машине, а затем применил к серверу. Мне повезло, что все прошло гладко :)


17
Похоже, что вы пытаетесь установить новые шины на ваш автомобиль во время вождения.
Orbling


Теоретически возможно. Похоже, как говорит Орблинг, меняя шины во время вождения автомобиля. Не очень просто!
Мэтт

@ephemient Отлично. Вы видите, что это возможно, просто невероятно сложно.
Orbling

Возможно, если вы дадите более подробную информацию об ограничениях ситуации, чрезвычайно умные, творческие и находчивые люди из Server Fault могут дать вам некоторые другие альтернативы или советы, которые могут позволить более реалистичный путь к достижению ваших целей.
Джед Дэниелс

Ответы:


8

Я согласен с мнением других ответов здесь: хотя может быть возможно установить Ubuntu удаленно на RHEL 3.4, вы, вероятно, будете наступать на очень тонкий лед.

Я думаю, что самая большая проблема, с которой вы можете столкнуться - это возраст ядра и libc в существующей системе. Это ядро ​​серии 2.4.x? Если это так, я не уверен, что вы сможете это осуществить, потому что в какой-то момент во время установки вам нужно будет запустить инструменты, которые были скомпилированы для запуска в ядре Ubuntu и libc, и они могут работать неправильно (или вообще) в более старой среде выполнения. Если вы не используете ядро ​​серии 2.6.x на удаленном сервере, я не думаю, что у вас есть большие шансы на успех.

Если вы все еще думаете, что можете попробовать это, есть несколько руководств, которые мне известны:

Оба эти руководства довольно старые, поэтому ни одно из них не может рассматриваться как что-либо, даже близкое к руководству «вырезать и вставить». Я настоятельно рекомендую последовать совету других здесь и сделать несколько пробных запусков на локальном сервере или виртуальной машине, потому что есть определенные недостатки и ошибки, которые вам необходимо решить, прежде чем идти вперед по-настоящему.


12

Лучшая практика для удаленной установки любой ОС - это покупка серверного оборудования с внешним управлением (HP ilo, Dell drac), которое позволяет удаленно выключать и видеть консоль сервера. Даже не пытайтесь иначе.


Я согласен, но мне все еще нужно разобраться с моей нынешней ситуацией
netvope

6
Многие опытные люди, которые делали это в течение десятилетия, скажут вам «удачи в этом».
Троенгель

1
И эмбобо, и троянгель находятся на месте; ситуация, в которой вы находитесь, только ухудшится, если вы попытаетесь сделать это удаленно. Мое предложение? Свяжитесь с центром обработки данных.
Эндрю М.

1
Карты удаленного управления великолепны, и большинство новых систем Supermicro поставляются с ними, включая дистанционное питание, клавиатуру / видео / мышь и удаленные приводы CD / DVD. Для этой ситуации я не могу представить себя без него.
Шон Рейфшнайдер

5

Установка нового дистрибутива на месте может быть выполнена, но это очень сложно. Это то, что вы почти наверняка не получите право с первого раза. На самом деле, вам повезет, если вы сделаете это правильно в третий или четвертый раз.

Кроме того, никто здесь не сможет дать вам список белья, за которым вы можете просто следовать, и это произойдет. Вам придется экспериментировать с различными альтернативами, в зависимости от вашего точного раздела диска и структуры файловой системы, конфигурации оборудования и т. Д.

Тем не менее, вот как бы я поступил так, если бы мне пришлось:

  • Получите машину, настроенную так же, как это возможно, к существующей машине: жесткие диски, сетевые карты, дисковые адаптеры, RAM, и все, что вы назовете.
  • Настройте эту машину для имитации текущей настройки на этом хосте.
  • Поэкспериментируйте с тем, что вам нужно сделать в этой тестовой системе.
  • Сделайте об этом заметки, чтобы воспроизвести их в «живой» системе.
  • Перед выполнением окончательной миграции снова просмотрите эти примечания в тестовой системе.

Некоторые методы, которые могут вам помочь:

  • Решите, хотите ли вы установить новый раздел или попробуйте установить поверх существующей файловой системы. Если вы создаете новый раздел, вы всегда можете вернуться назад, загрузив старый раздел. Однако это, вероятно, означает, что вам нужно уменьшить текущую файловую систему, что должно быть сделано в автономном режиме. Я написал несколько заметок еще в 2007 году, когда сделал это .
  • Возможно, вы сможете выполнить установку в небольшой раздел на тестовом компьютере, а затем внести соответствующие изменения, такие как IP-адреса и «dd», для этого образа файловой системы, чтобы использовать его для заполнения базовой установки в новом разделе. Это будет только в том случае, если вы используете отдельный раздел для новой установки.
  • Вместо этого вы можете поместить корневую файловую систему на место в подкаталоге, а затем сделать что-то в initrd так, чтобы оно было: «cd / target; mv * oldroot; mv oldroot / newos / *». переместить все старые каталоги с места и поставить новые на место. Это должно быть сделано до того, как initrd выполнит «pivotroot», вероятно, сразу после монтирования файловой системы.
  • Добавление некоторого кода в сценарии initrd может позволить вам совершать всевозможные замечательные вещи во время загрузки системы. Смотрите пост в блоге, на который я ссылаюсь выше, для более подробной информации.
  • Ожидайте, что вы потерпите неудачу в этом. Это чрезвычайно рискованное начинание. Когда я изменил размер файловой системы (упомянутый выше), я был шокирован, когда она перезагрузилась должным образом.
  • Вам нужно решить, что вы хотите сделать с загрузочными секторами, работает ли на них LILO или GRUB? Хотите попробовать остаться с текущим загрузчиком или перейти на 10.04? Вероятно, идеальным вариантом было бы использовать существующий загрузчик для загрузки в новую ОС, а затем запустить «grub-install» из этой ОС, чтобы установить новую.

Удачи! Вам это понадобится. :-)


1

Если у вас другой раздел, вы можете использовать этот раздел для установки на виртуальную машину, которая видит весь диск. Пока вы не монтируете один и тот же раздел на виртуальной машине и хосте или играете с таблицей разделов, вы в безопасности. Другим способом будет загрузка из сети и установка с использованием preseed или kickstart. Поэкспериментируйте с местной средой, прежде чем играть удаленно.


1

Я пишу простое решение на основе семян.

https://github.com/mhf-ir/ubuntu-overssh-reinstallation

Вам нужна установленная версия Ubuntu, которая имеет SSH. другой http-сервер для подачи файла preseed. Я тестировал так много раз во многих центрах обработки данных.

Если у вас есть Ubuntu, вы можете переустановить и перераспределить через ssh без KVM / IPMI / VNC или какого-либо удаленного приложения. просто с помощью SSH. И чистая установка с использованием netiso / miniiso сервера Ubuntu.

Он основан на загрузчике образа grub и загружает ваш собственный iso-файл, содержащий ваши сетевые настройки и пароль ssh.


0
  1. Удачи.

  2. Это возможно при некоторых обстоятельствах (которые могут не применяться здесь / к вам).

  3. Это трудно; Я рекомендую вам практиковаться на локальной (виртуальной, если необходимо) машине. Много.


0

Если вы можете получить только одно посещение сервера, вы можете добавить в систему порт KVM over IP. Я нашел Lantronix Spider 1 порт за $ 310 на CDW, который делает это. Это не помогает с «кнопкой перезапуска» или извлечением носителя, хотя вы можете зайти в BIOS при перезагрузке и изменить порядок загрузки так, чтобы CD игнорировался.


0

Я сделал это раньше, в качестве теста. Не то, что я бы рекомендовал делать, если нет запасного плана.

Как оказалось, системы достаточно надежны, если все необходимые приложения уже загружены. Я успешно запустил dd и перезаписал первые 8 ГБ или около того целевого сервера с установкой Ubuntu по умолчанию, а затем без проблем перезагрузил сервер в Ubuntu. Затем вы можете расширить раздел, чтобы заполнить оставшуюся часть диска.

Вы также можете настроить новый раздел, отменить загрузку в него новой установки и изменить загрузчик для загрузки в этот новый раздел. Опять же, ожидайте неудачу и надежду на успех.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.