Как удаленно установить CentOS

 15 апреля 2013      
 Linux - CentOS      
 Комментариев еще нет

Самым радикальным способом избавиться от «мусора» в операционной системе является ее «чистая» переустановка. Что достаточно простая задача, при наличии физического доступа к серверу (компьютеру). Однако большинство WEB серверов находятся на расстоянии многих и многих километров от своих хозяев. В данной статье я подробно расскажу как установить CentOS удаленно используя только доступ к консоли сервера по SSH.

Необходимость переустановки операционной системы

Причин может быть несколько. Неполадки в работе, когда система тормозит, или ни с того ни с чего терять производительность. Периодически может «глючить» какой-нибудь софт или вообще отказывается работать. Если необходимо сменить разрядность, к примеру с 32-х бит на 64 или наоборот. Когда необходима чистая ОС, к примеру для установки панели управления хостингом ISPmanager или Vesta Panel.

Три способа установки операционной системы на сервер

  1. Приехать в ДАТА центр и установить ОС;
  2. Оплатить услуги администрирования и сотрудники ДАТА центра установят Вам операционную систему;
  3. Использовать VNC и установить ОС удаленно.

Мне по душе третий вариант.

Нахрена козе баян? Или почему ОС лучше ставить самому.

Для себя вижу несколько причин переустановить операционную систему самостоятельно:

  1. Дороговизна услуг администрирования. Если у Вас бюджетный сервер и услуга администрирования оплачивается отдельно.
  2. Отсутствие контроля за действиями администратора. Сервер как и жену не доверю никому 🙂
  3. Потеря времени, у администратора хостинг провайдера может быть куча дел с другими клиентами и их серверами.
  4. Образы операционных систем неизвестного происхождения. Как правило никто не будет ставить Вам операционную систему с нуля из дистрибутива, а зальют на диск заранее подготовленный образ. Который может быть далеко неидеальным.

Три слагаемых успеха

  1. Доступ к серверу по SSH с правами ROOT.
  2. «Живой» сервер CentOS с доступом в интернет.
  3. ПО удалённого доступа к рабочему столу компьютера, к примеру TightVNC

ИНСТРУКЦИЯ по удаленной установке CentOS

Предварительные ласки или с чего начать

Писал, пишу и буду писать: не забудь про бэкап! И хотя статья не об этом, но резервные копии надо сделать обязательно, так как после переустановки операционной системы Ваш сервер будет чист как белый лист.

Необходимо определить сетевые настройки Вашего сервера. Нас интересуют следующие значения:
Сетевой интерфес (МАС адрес или наименование);
IP адрес сетевого интерфейса сервера;
Маска сети;
IP адрес шлюза по-умолчанию;
IP адрес доступного DNS сервера, как правило можно использовать публичные DNS от Google 8.8.8.8 и 8.8.4.4
Для определения необходимый параметров выполним в консоли несколько команд:

ifconfig
ip route show
cat /etc/sysconfig/network-scripts/ifcfg-eth0
cat /etc/sysconfig/network
cat /etc/resolv.conf

Я получил следующие значения:

//Ip 193.170.128.128
//Gateway 193.170.128.1
//DNS 193.170.128.2
//MASK 255.255.252.0
//MAC 12:14:01:4a:25:b5

Загрузка образов для старта

Необходимо выбрать загружаемые образы в зависимости от версии операционной системы и ее разрядности. К примеру для CentOS 64 бит версии 6.4 выполните следующие команды:

wget -O /boot/vmlinuz_remote http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/vmlinuz
wget -O /boot/initrd_remote.img http://mirror.centos.org/centos/6.4/os/x86_64/isolinux/initrd.img

Если необходима установка 32-х битной операционной системы то смените в адресах x86_64 на i386:

wget -O /boot/vmlinuz_remote http://mirror.centos.org/centos/6.4/os/i386/isolinux/vmlinuz
wget -O /boot/initrd_remote.img http://mirror.centos.org/centos/6.4/os/i386/isolinux/initrd.img

Обращаю Ваше внимание, что загрузка будет произведена с официальных серверов CentOS. Предварительно проверьте правильность путей открыв адреса в браузере.

Конфигурация загрузчика GRUB для удаленной установки CentOS

Переходим к самому важному пункту — настройка конфигурации загрузчика GRUB. В двух словах, мы пропишем в настройках альтернативную загрузку с использованием свежескаченного дистрибутива. И укажем grub попробовать загрузить его один раз. А если что-то пойдет не так, то автоматически вернемся к ранее установленному дистрибутиву после перезагрузки через 120 секунд (в некоторых случаях для перезагрузки может понадобиться помощь специалистов ДАТА центра).
Открываем файл grub.conf (как правило /boot/grub/grub.conf) и добавляем в него следующие строки:

title Remote Install
root (hd0,0)
kernel /boot/vmlinuz_remote lang=en_US keymap=us method=http://mirror.centos.org/centos/6.4/os/x86_64/ vnc vncpassword=123456 ip=193.170.128.128 netmask=255.255.252.0 gateway=193.170.128.1 dns=193.170.128.2 noselinux ksdevice=eth0 headless xfs panic=120
initrd /boot/initrd_remote.img

где, root (hd0,0) — расположении /BOOT партиции, vncpassword — пароль для доступа к удаленному рабочему столу VNC сервера (придумайте свой), ip — ip адрес Вашего сервера, netmask — маска сети, gateway — ip адрес шлюза по-умолчанию, dns — ip адрес DNS сервера (можно использовать публичные от Google 8.8.8.8 или 8.8.4.4), ksdevice — наименование сетевого интерфейса или его MAC-адрес, panic — время перезагрузки, если что-то пойдет не так.
Кроме этого проверьте адреса загрузки на доступность и имена файлов, которые мы скачали на предыдущем шаге.
Для 32-х битной операционной системы изменения будут выглядеть так (как всегда меняем в адресе x86_64 на i386):

title Remote Install
root (hd0,0)
kernel /boot/vmlinuz_remote lang=en_US keymap=us method=http://mirror.centos.org/centos/6.4/os/i386/ vnc vncpassword=123456 ip=193.170.128.128 netmask=255.255.252.0 gateway=193.170.128.1 dns=193.170.128.2 noselinux ksdevice=eth0 headless xfs panic=120
initrd /boot/initrd_remote.img

Теперь самое важное, куда же все это вставлять 🙂
Мой файл grub.conf выглядит так:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.2.1.el6.i686)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.2.1.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-2.6.32-358.2.1.el6.i686.img
title CentOS (2.6.32-358.el6.i686)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-2.6.32-358.el6.i686.img

Как Вы видите система имеет в списке загрузки два варианта. И мы должны добавить свой. Добавим его в самый конец:

# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/mapper/VolGroup-lv_root
#          initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.32-358.2.1.el6.i686)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.2.1.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-2.6.32-358.2.1.el6.i686.img
title CentOS (2.6.32-358.el6.i686)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.32-358.el6.i686 ro root=/dev/mapper/VolGroup-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD rd_LVM_LV=VolGroup/lv_swap SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_LVM_LV=VolGroup/lv_root  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /boot/initramfs-2.6.32-358.el6.i686.img
title Remote Install
root (hd0,0)
kernel /boot/vmlinuz_remote lang=en_US keymap=us method=http://mirror.centos.org/centos/6.4/os/i386/ vnc vncpassword=123456 ip=193.170.128.128 netmask=255.255.252.0 gateway=193.170.128.1 dns=193.170.128.2 noselinux ksdevice=eth0 headless xfs panic=120
initrd /boot/initrd_remote.img

Наша конфигурация загрузки CentOS идет третьим пунктом. Укажем grub попробовать загрузить ее один раз:

grub
grub> savedefault --default=2 --once
savedefault --default=2 --once
grub> quit

После чего можно перегружать сервер:

reboot

Ждем когда сервер начнет пинговаться и пробуем подключиться по VNC по адресу 193.170.128.128:1 (адрес нашего сервера, VNC порт=1). В зависимости от мощности сервера и скорости канала на это может уйти до получаса. За это время скачаются и установятся все необходимые пакеты.
После этого на экране будет стандартный рабочий стол установщика CentOS с графическим интерфейсом. Ну а сама установка операционной системы на сервер — это совсем другая история.



Замечания по удаленной установке CentOS

VNC не поддерживает Keepalives и при длительном простое может «отвалиться». Поэтому если Вы подключили VNC клиент, то нужно сразу приступать к делу, либо принудительно отключиться от сервера.
Если у Вас на сервере нет файла grub.conf, то это значит, что у вас виртуальный сервер на основе OpenVZ и данная инструкция Вам не подходит. Это еще один повод использовать аппаратные методы виртуализации, к примеру VmWare, как это сделано в компании Adman.
В статье приведен безопасный метод загрузки, с возможностью вернуться к существующей операционной системе. Но Вы можете записать новую конфигурацию на первое место и тогда не будет необходимости в команде savedefault —default=2 —once. Grub будет использовать первую по списку.

Источники для вдохновения при написании данной статьи

  1. Удаленная установка CentOS или Fedora
  2. How to re-install Centos yourself remotely
  3. How to Remote Install CentOS 6 via VNC

 Метки:  

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Технический блог © 2016
SQL - 39 | 0,246 сек. | 7.7 МБ