Назад | Перейти на главную страницу

Как автоматизировать удаленную загрузку / перезагрузку мультизагрузочного сервера?

Моя команда разрабатывает приложение, которое должно работать на нескольких платформах (linux [32/64], windows [32/64]) и включает 3D-рендеринг (OpenGL). Мы хотим автоматизировать наши тесты, используя сервер с платой nvidia.

Мы пытались использовать Xen Server (Free Edition) для виртуализации всех платформ, которые мы хотим протестировать, но нам не удалось заставить виртуальные серверы работать с платой nvidia. Затем мы провели несколько тестов с VirtualBox, но его 3D-ускорение не подошло для наших целей.

Теперь мы думаем об установке всех ОС на сервер в качестве конфигурации с несколькими загрузками. Кто-нибудь знает какое-то решение, которое позволяет удаленно управлять этим сервером, чтобы мы могли удаленно загружать и перезагружать его с выбранной нами ОС? Таким образом, можно было бы легко автоматизировать процесс тестирования на всех платформах.

Я также открыт для других возможных решений.

Если вы используете grub в качестве загрузчика, когда вы будете готовы переключиться на следующую ОС, вы можете изменить grub.conf, чтобы иметь другой загрузочный раздел по умолчанию, а затем при перезагрузке он перейдет к следующей ОС. В Windows вам нужно будет установить драйвер ext2, но это не так уж сложно.

Использование grub и изменение ОС по умолчанию в grub.conf, как предлагает @Dan, неплохой вариант, но вместо этого я бы предложил IP KVM, что позволит вам удаленно управлять своим компьютером, включая операции BIOS и загрузчика, буквально из любого места, где есть подключение к Интернету.

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

Помимо предложения Дэна (которое, вероятно, является лучшим выбором, если вы используете GRUB), единственное, что я могу придумать для «автоматизации» загрузчика, - это подключить последовательную консоль к отдельной машине и использовать Ожидать или что-то подобное для взаимодействия с загрузчиком.

Общее предположение о загрузчиках: либо (а) никого не будет рядом, и в этом случае должна быть запущена «стандартная» ОС, либо (б) кто-то будет у консоли, чтобы выбрать нужную ОС. Это не похоже на область, которая привлекает много внимания специалистов по автоматизации ...

С одной машиной это может быть больше проблем, чем она того стоит, но если у вас было несколько машин, которые должны были загружать различные конфигурации, вы можете рассмотреть возможность использования GRUB-PXE чтобы загрузить конфигурацию загрузки по сети. Это позволит вам изменить значения того, что будет загружаться в одном месте, без зависимости от загружаемого блока и доступной файловой системы.

В Windows, iReboot будет делать то, что вам нужно, позволяя вам выбрать ОС для перезагрузки вашего ПК (только один раз или несколько раз) из среды, в которой вы вошли в систему. Однако вам нужно будет настроить разные операционные системы для мультизагрузки под управлением BOOTMGR / BCD, а не GRUB / GRUB2.

Я знаю, что это старый поток, но я нашел решение своей проблемы.

Я использую Win7 только для запуска EasyBCD и iReboot. У меня также есть несколько вариантов Linux и все, что я могу найти для тестирования. Для удаленного управления моей машиной я использую Teamviewer.

Я создал отдельную папку для каждой ОС, которую я хотел загрузить, в папке «boot», содержащей файл bcd.

Затем я использую EasyBCD, чтобы изменить значение по умолчанию для каждой ОС и сохранить этот файл bcd в соответствующей папке.

Когда я использую вариант Linux или другую ОС, помимо Win7, я просто копирую и вставляю желаемый файл bcd в папку «boot» и перезаписываю существующий.