Open-Club.Net Проект полностью ориентирован на Open Source-подход(изучаем, настраиваем, устанавливаем и общаемся о Linux).
Мы в соц. сетях:
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Как можно просто и быстро установить Linux по сети
DiselДата: Вс, 27.09.2009, 14:04 | Сообщение # 1
Генерал-лейтенант
Группа: Бывалый
Сообщений: 489
В серверной все чаще попадаются сервера без внешних CD/DVD-приводов. Время от времени на них нужно ставить операционную систему и в этом может сильно помочь установка по сети. Вы просто включаете сервер и начинаете установку. Сетевая карта должна поддерживать технологию PXE. PXE – Pre-Boot Execution Environment, позволяет осуществлять загрузку по сети.

Но PXE не достаточно для полного счастья, технология которая позволит полностью автоматизировать установку – kickstart (разработчиком которой является компания Red Hat). Суть ее проста, мы заранее составляем файл содержащий значения всех опций которые могут понадобиться в ходе установки. Более того мы можем выполнять свои скрипты до установки и после. Тем самым задавая настройки будущей ОС.

Установка с помощью kickstart типового комплекта Linux занимает 5-7 минут.

Для Install-сервера нужно 3 службы и 1 пакет.

* DHCP – предоставляет клиентам сетевые реквизиты
* TFTP – простой способ предоставить доступ к файлам по сети
* Syslinux – пакет содержит загрузчик pxelinux.0 и некоторые другие файлы
* NFS – предоставляет доступ к файловой системе по сети

Процесс установки можно разбить на этапы:

1. pxe – прошивка pxe начинает свою работу, когда мы в BIOS выставляем установку по сети или когда на HDD не найдена MBR
2. DHCP фаза 1 – клиент получает сетевые реквизиты и адрес tftp-сервера а также название файла-загрузчика (pxelinux.0). По умолчанию TFTP-сервер это DHCP-сервер.
3. TFTP – загрузчик pxelinux.0 обращается к TFTP-серверу и запрашивает у него initrd.img (Initial RAM disk, временная файловая система) ядро Linux.
4. Kernel – передача управления ядру Linux DHCP фаза 2 – ядро Linux далет запрос к DHCP-серверу чтобы получить сетевые реквизиты и в дальнейшем адрес NFS-сервера
5. NFS – этап когда монтируется NFS-раздел
6. Init – происходит запуск /sbin/init и управление передается ему. Init – это главный процесс в системе, другие процессы являются родительскими процессами init.

В свободном изложение:

DHCP-сервер ожидает bootp-запросы в своей сети, после того как он получает запрос он смотрит MAC-адрес источника, и если о таком MAC-адресе у него имеется соответствующая запись он начинает с ним работать. DHCP — сервер выдает клиенту сетевые реквизиты (ip-адрес, gateway, DNS-сервера,...) и по протоколу TFTP, с помощью TFTP-сервера отправляет загрузочный образ pxelinux.0. Этого образа хватает чтобы вывести меню выбора ОС.

Выбрав ОС вы начинаем загрузку ядра и начинаем инсталляцию, в процессе выбрав источник установки — NFS-сервер. На NFS-сервер нужно выложить подготовленный контент будущей операционной системы и убедиться, что соответствующие каталоги экспортированы.
DHCP

Устанавливаем DHCPD и добавляем его в автозагрузку

Quote
# yum -y install dhcp
# chkconfig dhcpd on

Файл /etc/dhcpd.conf делаем такой:

Quote
ddns-update-style interim;

ignore client-updates;

subnet 192.168.146.0 netmask 255.255.255.0 {

option routers 192.168.146.2;

option subnet-mask 255.255.255.0;

option domain-name «company.ru»;

option domain-name-servers 192.168.146.2;

default-lease-time 21600;

max-lease-time 43200;

Allow bootp;

Allow booting;

host unixbox {

hardware ethernet 00:0c:29:77:9c:9c;

fixed-address 192.168.146.129;

filename «pxelinux.0»;

option subnet-mask 255.255.255.0;

option routers 192.168.146.2;

option domain-name «company.ru»;

option host-name «unixbox»;

next-server 192.168.146.130;

}

}

Запускаем DHCPD или перезагружаем если он был запущен

Quote
# service dhcpd restart

TFTP

Устанавливаем пакет tftp-server из репозитория

Quote
# yum -y install tftp-server

Теперь необходимо включить tftp в конфигурации xinetd, для этого в файле

/etc/xinetd.d/tftp

Меняем “disable = yes” на “disable = no” и включаем xinetd

Quote

# service xinetd start

Проверяем что порт tftp-сервера прослушивается (tftp работает на порту 69)

Quote
# netstat -nlp | grep :69

udp 0 0 0.0.0.0:69 0.0.0.0:* 3105/xinetd

Syslinux

Пакет содержит набор файлов для загрузки по сети. Нам нужны pxelinux.0 который как загрузочный образ мы будем отдавать через DHCP и menu. c32, с помощью этого файла будет рисоваться более привлекательное меню пользователя.

Quote

# cp $(rpm -ql syslinux | grep menu.c32) /tftpboot/

# cp $(rpm -ql syslinux | grep pxelinux.0) /tftpboot/

NFS

По умолчанию в системе скорее всего есть NFS, если нету то поставьте с помощью yum.

Quote
# chkconfig nfs on

В файл /etc/exports добавляем запись

Quote
echo “/var/install-server/ *(ro,no_root_squash)” >> /etc/exports

Запускаем nfs-сервер

Quote
# service nfs start

Проверяем что каталог экспортирован

Quote
# exportfs

/var/install-server

<world>

Создаем структуру tftp-сервера добавляем контент на сервер

Quote
# mkdir -p /tftpboot/{pxelinux.cfg,centos5_x86}

# mkdir -p /var/install-server/centos5_x86

Монтируем наш DVD с CentOS 5 и закачиваем содержимое в /var/install- server/centos5_x86

Quote
# mount /dev/cdrom /mnt/

# cp -r /mnt/* /var/install-server/centos5_x86/

#cp /var/install-server/centos5_x86/images/pxeboot/* /tftpboot/centos5_x86/

В каталоге /tftpboot/pxelinux.cfg создаем файл default и заполняем его как ниже:

Quote
default menu.c32

menu title Linux Install Server. Please choose OS to install.

prompt 0

timeout 100

label CentOS 5 x86 Custom install

kernel /centos5_x86/vmlinuz

append initrd=/centos52_x86/initrd.img

label Quit

localboot 0

Устанавливаем ОС по сети

После всех сделанных манипуляций которые описаны выше, можем приступить к установке ОС. Стартуем нашу машину с MAC-адресом 00:0c:29:77:9c:9c включив в BIOS загрузку по сети. Когда начнется установка все делаем стандартным образом, кроме как в списке откуда будет ставить ОС нужно выбрать NFS, далее когда попросят, указать:

Quote
NFS server name : 192.168.146.130

CentOS directory: /var/install-server/centos5_x86

Дальше устанавливаем ОС и пользуемся на здоровье :)
Автоматизация установки с помощью Kickstart

Для автоматизации нужно создать файл содержащий всю нужную информацию, которая может потребоваться в процесс установки. Такой файл создается программой system-config-kickstart (GUI tool) в любой CentOS с X Window

Quote
# yum -y install system-config-kickstart

# system-config-kickstart

После того как мы создали файл с помощью system-config-kickstart его нужно перенести на Install-сервер и сделать доступным по одному из протоколов – http, nfs или ftp. Поскольку в работе Install-сервера активно используется NFS то и будем использовать ее.

В моем случае kickstart-файл лежит в /var/install-server/centos5_x86/centos5_x86_ks.cfg

В файл /tftpboot/pxelinux.cfg/default нужно всего лишь добавить директиву ks с указанием местоположения kickstart-файла. Пример с kickstart-файлом.

Quote
default menu.c32

menu title Linux Install Server. Please choose OS to install.

prompt 0

timeout 100

label CentOS 5 x86 Custom install

kernel /centos5_x86/vmlinuz

append initrd=/centos5_x86/initrd.img

label CentOS 5 x86 Kickstart Install

kernel /centos52_x86/vmlinuz

append initrd=/centos5_x86/initrd.img ks=nfs:192.168.146.135:/var/install-server/

centos5_x86/centos5_x86_ks.cfg

label Quit

localboot 0

Теперь выбрав «CentOS 5 x86 Kickstart Install» в меню выбора ОС нам останется только подождать сервера с установленной на нем ОС.

Ниже пример моего Kickstart-файла. Мне захотелось чтобы в установленной ОС в настройках sshd была опция «PermitRootLogin yes». Kickstart-файл позволяет не только задавать параметры установки ОС но и выполнять скрипты, до инсталляции (%pre) и после (%post). Таким образом можно написать массу скриптов по тюнингу и за 5-10 минут инсталляции получить полностью готовую ОС.

Quote
#platform=x86, AMD64, or Intel EM64T

# System authorization information

auth --useshadow --enablemd5

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Use text mode install

text

# Firewall configuration

firewall --disabled

# Run the Setup Agent on first boot

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# Installation logging level

logging --level=info

# Use NFS installation media

nfs --server=192.168.146.130 --dir=/var/install-server/centos5_x86

# Network information

network --bootproto=dhcp --device=eth0 --onboot=on

#Root password

rootpw --iscrypted $1$Bz09jb2I$hfzh2vApqMjG0sEPsAwNr/

# SELinux configuration

selinux --disabled

# Do not configure the X Window System

skipx

# System timezone

timezone Europe/Moscow

# Install OS instead of upgrade

install

# Disk partitioning information

part swap --bytes-per-inode=4096 --fstype=”swap” --size=512

part / --bytes-per-inode=4096 --fstype=”ext3” --grow --size=1

%post --interp /bin/bash

PATH=/somework

/bin/mkdir $PATH

/bin/sed -e ‘s/#PermitRootLogin yes/PermitRootLogin yes/g’ /etc/ssh/sshd_config >

$PATH/sshd_config_edited

/bin/cp $PATH/sshd_config_edited /etc/ssh/sshd_config

/bin/rm -rf $PATH



 
  • Страница 1 из 1
  • 1
Поиск:
Новый ответ
Имя:
Текст сообщения:
Код безопасности: