Хочу поделиться способом удаленной установки CentOS
или Fedora. Используя возможности инсталлятора anaconda, можно упростить процедуру инсталляции или обновления операционной системы на удаленном сервере. Цитата из русскоязычной страницы проекта раскрывает некоторые возможности anaconda, которые мы будем использовать:"Anaconda является достаточно современным установщиком. Он позволяет выполнять установку с локальных или удаленных источников, таких как CD и DVD, образы размещенных на жестких дисках, NFS, HTTP и FTP. Может быть создан сценарий установки с помощью kickstart для обеспечения полностью автоматической установки, позволяющей дублировать систему на ряд компьютеров. Установка может быть запущена через VNC на компьютерах без монитора."
Все описанное ниже подходит для любого дистрибутива Linux, использующего для загрузки grub. Примеры из статьи тестировались на grub 0.97, но после небольших изменений можно использовать и с grub2. Более того, этот способ использовался мной для замены FreeBSD на Linux, после установки grub в качестве загрузчика вместо стандартного Boot Manager.
Подготовка состоит из 4-х шагов:
*** Определение сетевых настроек сервера;
*** Загрузка образов для выбранной OS;
*** Подготовка конфигурации и добавление ее в grub.conf;
*** Перезагрузка сервера и подключение к нему через VNC.
++ Определение сетевых настроек сервера
Нам понадобится IP адреса сервера, шлюза и DNS. Также понадобится MAC адрес основной сетевой карты. Его важно указывать в параметрах, если на сервере 2 сетевых карты, иначе есть вероятность, что инсталлятор выберет вовсе не ту, которая нам нужна. Для определения сетевых настроек можно воспользоваться следующими командами:
ifconfig
ip route show
cat /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/sysconfig/network
cat /etc/resolv.conf
в нашем примере это:
Ip 172.17.17.232
Gateway 172.17.17.1
DNS 172.17.17.1
MAC 52:54:00:4a:25:b5
++ Загрузка образов
CentOS и Fedora используют разные образы для старта инсталлятора. Надо выбрать соответствующие образы, в зависимости от того какой дистрибутив мы собираемся установить. Кроме того, если вы хотите установить 32х битную версию, то в url вам нужно заменить x86_64 на i386.
Образы для centos 5.6 (x86_64):
wget -O /boot/vmlinuz_remote http://mirrors.supportex.net/centos/5.6/os/x86_64/isolinux/v...
wget -O /boot/initrd_remote.img http://mirrors.supportex.net/centos/5.6/os/x86_64/isolinux/i...
Образы для fedora 15 (x86_64):
wget -O /boot/vmlinuz_remote http://download.fedora.redhat.com/pub/fedora/linux/releases/...
wget -O /boot/initrd_remote.img http://download.fedora.redhat.com/pub/fedora/linux/releases/...
++ Подготовка конфигурации и добавление ее в grub.conf
Укажем ранее сохраненные ip адреса сервера, шлюза и днс, а также url, откуда инсталлятор будет скачивать rpm пакеты. Дополнительные параметры, например, отсутствие монитора, выбор определенной сетевой карты и пароль для VNC.
Если /boot раздел на диске не первый, то поправьте строчку root(hd0,0), она должна соответствовать номеру раздела.
Добавляем эти строки в grub.conf для Centos 5.6:
title Remote Install
root (hd0,0)
kernel /vmlinuz_remote lang=en_US keymap=us \
method=http://mirrors.supportex.net/centos/5.6/os/x86_64/ &nbs...
vnc vncpassword=SuperSecret ip=172.17.17.232 netmask=255.255.255.0 gateway=172.17.17.1 \
dns=172.17.17.1 noselinux ksdevice=52:54:00:4a:25:b5 headless xfs panic=120
initrd /initrd_remote.img
Или для fedora 15:
title Remote Install
root (hd0,0)
kernel /vmlinuz_remote lang=en_US keymap=us \
method=http://download.fedora.redhat.com/pub/fedora/linux/releases/.../ \
vnc vncpassword=SuperSecret ip=172.17.17.232 netmask=255.255.255.0 gateway=172.17.17.1 \
dns=172.17.17.1 noselinux ksdevice=52:54:00:4a:25:b5 headless xfs panic=120
initrd /initrd_remote.img
Предполагается, что наша конфигурация идет вторым пунктом меню. Мы указали grub попробовать загрузить ее один раз. Если что-то пойдет не так, вернемся к ранее установленному дистрибутиву после перезагрузки, через 120 секунд.
# echo 'savedefault --default=1 --once' | grub --batch
Более подробно о всех загрузочных параметрах анаконды вы можете прочитать на этой страничке: http://fedoraproject.org/wiki/Anaconda/Options
++ Перезагрузка сервера и подключение к нему по VNC
Перезагружаем сервер и ждем, когда он начнет отвечать на ping. Потребуется некоторое время, пока загружаются дополнительные пакеты и можно будет присоединиться через vnc. Если канал не очень быстрый, это может занять до 20-30 минут.
Подключаемся к серверу и делаем все как на локальной консоли:
vncviewer 172.17.17.232:1
Если вы работаете из Windows, то можете воспользоваться TightVNC.
++ Советы
VNC-сервер запускается без keep-a-live, поэтому если вы подключаетесь через nat, то при долгой неактивности есть шанс потерять сессию и больше не восстановить ее. Лучше отключаться от vnc, а потом подключаться повторно, если VNC консоль долго не используется.
Не стоит форматировать бутовый раздел как ext4, хотя это предлагают по умолчанию как Fedora, так и Centos. В некоторых случаях установленная операционная система отказывается загружаться с этого раздела. И хотя это бывает крайне редко, но лучше не рисковать.
При установке Fedora в минимальной конфигурации сервис network оказывается не активированным. Это можно починить, добавив в параметры
anacond-ы sshd и sshpw=password, указав свой пароль для ssh. После окончания интерактивной установки, перед самой перезагрузкой инсталлятора, зайти по ssh на удаленный сервер и активировать сервис network:
# chroot /mnt/sysimage
# chkconfig network on
# exit
++ Ссылки
[[http://www.redhat.com/magazine/024oct06/features/kickstart/ How to use Kickstart (Anaconda's remote control)]]
[[http://fedoraproject.org/wiki/Anaconda Anaconda]]
[[http://fedoraproject.org/wiki/Anaconda/Options Anaconda Boot Options]]
[[http://www.shekhargovindarajan.com/tips-n-tricks/install-fed.../ Install Fedora 14 Linux without a monitor (headless), keyboard and CD/DVD]]
[[http://fedoraunity.org/solved/installation-solutions/install... Installing Fedora Using PXE Images]]
URL: http://supportex.net/ru/2011/06/remote-install-centos-or-fed.../
Обсуждается: http://www.opennet.dev/tips/info/2605.shtml