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

Есть ли способ запускать сценарии кикстарта на уже существующем сервере?

Обычно мы выделяем серверы с помощью сценариев кикстарта (обслуживаемых 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. Это похоже на решение Аарона, но использует сетевые ресурсы, а не отдельный раздел. Это то, что я реализовал. Суть в том

  • Загрузите установочный vmlinuz и initrd.img в / boot
    • 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.

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

С тех пор, как это заработало, я не столкнулся с какими-либо проблемами.