Обычно мы выделяем серверы с помощью сценариев кикстарта (обслуживаемых Cobbler) при установке операционной системы.
Но нам должен предоставить новый сервер от интернет-провайдера, на котором уже установлена операционная система и, возможно, без удаленного доступа к консоли.
Есть ли способ перезагрузить сервер Linux (та же ОС, которую мы обычно используем) и заставить его переустановить с помощью сценария кикстарта?
Если у вас есть отдельный физический раздел для копирования установочного носителя, вы можете сделать это и изменить Grub на Kickstart при загрузке.
install harddrive --partition=sdb2 --dir=/path/to/installation-media
добавить в /etc/grub.conf
:
title Reinstall CentOS 6
root(hd0,0)
kernel /vmlinuz-kickstart ks=kickstart.cfg
initrd /initrd-kickstart.img
Вам нужно будет изменить приведенные выше значения (где это необходимо) для вашей среды. Ядро и начальный RAM-диск можно скопировать с установочного носителя (обычно в ./isolinux каталог.) Примечание: Я добавил -кикстарт к именам файлов, чтобы они выделялись в списке каталогов.
Наконец, установите запись Grub по умолчанию на эту и перезагрузитесь. (Подсчитайте экземпляры заглавие, начиная с 0.)
Я не могу не подчеркнуть, что вы должны протестировать это локально на виртуальной машине VirtualBox или тому подобном, прежде чем пробовать это в совместной системе.
Чтобы получить больше информации:
Параметры кикстарта
Запуск кикстарт-установки
Вы можете попробовать использовать змеиный сервер.
После настройки и сервер, и клиентский компьютер будут предоставлять интерфейс curses для выбора файла кикстарта среди других параметров.
Вы можете выполнить установку самостоятельно, если провайдер предоставит вам удаленный доступ к аппаратному обеспечению сервера для внеполосного управления (например, IPMI, iLO, DRAC). Если у вас нет такого доступа или если на сервере даже нет такого оборудования, вам, вероятно, не стоит иметь с ними дела и искать другого провайдера.
Я не знаю, как выполнить кикстарт на уже установленном сервере (хотя я не специалист по CentOS / Redhat, поэтому вполне возможно, что я не знаю, о чем говорю).
Решение Майкла Хэмптона работает, если у вас есть удаленный KVM (с удаленным носителем и приличной пропускной способностью), но в вашей ситуации я бы предложил изучить управление развертыванием / конфигурацией через Кукольный, Повар, или один из многих других инструментов.
Инструменты управления конфигурацией / развертыванием позволят вам убедиться, что все ваши серверы соответствуют стандартной конфигурации независимо от их начального состояния (так что, если ваш интернет-провайдер передаст вам систему, которая в основном непригодна для использования, вы можете быстро ее настроить и запустить), и вы получите преимущество постоянное управление установкой обновлений и т.п.
Это немного более долгосрочное решение, и определенно требуется кривая обучения, но, вероятно, оно того стоит, если вы собираетесь управлять кучей машин в будущем.
Недавно меня попросили взглянуть на то, как это сделать, и в рамках поиска решения я нашел эти вопросы и ответы.
Как говорит Майкл, внеполосный режим предпочтительнее, но он не всегда доступен.
Я посмотрел на сервер змей, который предлагает Давуд. Он работает, но его не любят, и в его документации есть ошибки. Я бы не рекомендовал его использовать.
Я спросил на IRC #centos, и они указали мне на установить из grub. Это похоже на решение Аарона, но использует сетевые ресурсы, а не отдельный раздел. Это то, что я реализовал. Суть в том
wget -N http://mirror.centos.org/centos/6.5/os/x86_64/isolinux/vmlinuz
wget -N http://mirror.centos.org/centos/6.5/os/x86_64/isolinux/initrd.img
Отредактируйте /boot/grub/grub.conf и создайте запись для нового ядра
title Reinstall CentOS
kernel /vmlinuz ro upgradeany ip=192.168.254.44 netmask=255.255.255.0 hostname=somehost.tld ks=http://server.tld/ks/kickstart.ks gateway=192.168.254.220 dns=8.8.8.8 headless vnc vncpassword=SomePassword
initrd /initrd.img
На server.tld вам понадобится httpd, обслуживающий настроенный соответствующим образом файл кикстарта, здесь важна директива url.
url --url http://mirror.centos.com/centos/6.5/os/x86_64
В результате установочные файлы будут скопированы из удаленной системы с именем.
Очевидно, это работает только в том случае, если вы можете установить собственное ядро, поэтому, например, оно не будет работать с каплей Digital Ocean.
Вы можете легко неправильно настроить что-то во время разработки решения, поэтому я бы не рекомендовал делать это в системе, в которой нет метода простой переустановки образа поставщика услуг.
С тех пор, как это заработало, я не столкнулся с какими-либо проблемами.