вторник, 13 октября 2015 г.

Коротко о бытром развёртывании RELS 6.x

В различных платформах существует функционал по развёртыванию образов ОС на физическое оборудование, RELS не является исключением.

Наша задача быстро получить большое количество серверов на базе RELS для нашего ЦОД на этапе его развёртывания.

Функционал мы используем классический DHCP, TFTP, PXE.
 
Настройка до безобразия простая, думаю, что любой с ней справится (мы рассмотрим простой случай для начинающих).
 
ПРИМЕЧАНИЕ! Предварительно необходимо сконфигурировать, либо отключить файрвол. В данной статье, я не ставлю целью отработать Best Practice по безопасности или конфигурации сервисов, а просто даю направление для развития.
 
ПРИМЕЧАНИЕ! Предварительно необходимо выполнить #echo 0 >/selinux/enforce #to disable selinux
 
 
Первым делом установим необходимые серверные компоненты:
 
#yum install system-config-kickstart system-config-netboot tftp-server syslinux httpd -y


Создаём необходимую директорию
 
#mkdir -p /var/lib/tftpboot/linux-install/pxelinux.cfg
 
Копируем файлы
#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/linux-install/
#cp /usr/share/syslinux/menu.c32 /var/lib/tftpboot/linux-install/

 
Монтируем инсталяционный диск RELS и копируем содержимое в папку ниже
#cp /media/RELS\ 6.6\ x86_64\ DVD/images/pxeboot/* /var/lib/tftpboot/linux-install/
 
Правим /etc/dhcp/dhcpd.conf
 

subnet 10.230.2.0 netmask 255.255.255.0 {

        range 10.230.2.10 10.230.2.254;

        option domain-name-servers 10.230.2.2,10.230.2.3;

        option routers 10.230.2.1;

}

 

allow booting;

allow bootp;

class "pxeclients" {

        match if substring(option vendor-class-identifier, 0, 9) = "PXEClient";

        next-server 10.230.2.4;

        filename "linux-install/pxelinux.0";

}

 
Настраиваем  TFTP /etc/xinetd.d/tftp
 

{

        socket_type             = dgram

        protocol                = udp

        wait                    = yes

        user                    = root

        server                  = /usr/sbin/in.tftpd

        server_args             = -s /var/lib/tftpboot

        disable                 = no

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

        bind                    = 10.230.2.4

 

}
 
Правим меню для PXE-загрузчика, предварительно создав
файл /var/lib/tftpboot/linux-install/pxelinux.cfg/default


default menu.c32

menu title ------Boot Menu------

label 1
menu label ^ 1) RELS 6.6 SERVER
kernel    vmlinuz        
append initrd=initrd.img ks=http://10.230.2.4/ks/kickstart.cfg ksdevice=eth0

Выделенная жёлтым строка - это веб-сервер, который мы настроим чуть позже.
 
Клиент, получив адрес по PXE будет искать полный образ ОС для инсталляции по NFS, посему, перед конфигурацией веб-сервера, мы делаем папку с правами только чтение и экспортируем её по NFS для нашей доверенной сети (пример: /NTbootShare *(ro)), затем копируем в неё содержимое DVD диска с RELS.
 
ПРИМЕЧАНИЕ! Не забывайте после конфигурации сервисов выполнять их перезагрузку.

#service dhcpd restart
#service xinetd restart
#service nfs restart
 
Теперь займёмся фалом ответов, для этого мы используем мастер system-config-kickstart. Те, кто работал с аналогичными решениями у Microsoft или других вендоров найдут это очень  удобным. Ниже несколько примеров интерфейса:
 
 
Да, у нас есть, так же, возможности по запуску скриптов, либо до начала установки, либо после нее - что очень удобно.
На выходе я получил такой вот kickstart.cfg файл.
 

#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# Install OS instead of upgrade
install
# Use NFS installation media
nfs --server=10.5.103.10 --dir=NTbootShare
# Root password
rootpw --iscrypted $1$aaBI0VU5$IvjY5x0ZGkMMcxiMt8hOh1
# System authorization information
auth  --useshadow  --passalgo=sha512
# Use graphical install
graphical
# Run the Setup Agent on first boot
firstboot --enable
# System keyboard
keyboard us
# System language
lang en_US
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System timezone
timezone  Europe/Moscow
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all 
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part / --fstype="ext4" --size=40960
part /var --fstype="ext4" --size=8192
part swap --fstype="swap" --size=4096

%packages
@base
@compat-libraries
@debugging
@desktop-debugging
@graphical-admin-tools
@hardware-monitoring
@internet-browser
@lxde-desktop
@network-file-system-client
@network-tools
@performance
@perl-runtime
@print-client
@rosa-server-setup
@ruby-runtime
@server-platform
@storage-client-multipath
@system-admin-tools
@wine
@x11
NetworkManager-openswan
genisoimage
mc
mtools
oddjob
sgpio
squashfs-tools
-fskbsetting

%end
 
 
Теперь вернёмся к веб-серверу. Мы создаём директорию
mkdir /var/www/html/ks

Копируем в неё наш файл ответов
cp kickstart.cfg /var/www/html/ks/


и даём права
chmod 644 /var/www/html/ks/kickstart.cfg


Затем создадим минимальный файл конфигурации для веб-узла
/etc/httpd/conf.d/pxeboot.conf


Alias /rels6/var /pxe/rels6
Options Indexes FollowSymLinks
#service httpd restart
 
 ПРИМЕЧАНИЕ! Не забывайте после конфигурации сервисов выполнять их перезагрузку.

ВНИМАНИЕ! Тем, кто привык работать с System Center будет непривычно, что тут нет защиты "от дурака" в виде ввода пароля перед стартом последовательности задач, т.е. если у вас есть скрипт автоматизации с разбиением разделов и т.д., при "поимке" сервером PXE (если у него принудительно выставлена первой загрузка с сети) задания на установку, система затрёт всё имеющееся, выполняя последовательность задач скрипта (в том числе после установки и перезагрузки). Лучше использовать явно нажатие F12 с переключением в сетевую загрузку.

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

 
 




После установки мы получаем классический вариант экрана приветствия.

 
Вводим логин и пароль и входим в систему.


ПРИМЕЧАНИЕ! В данной последовательности задач не сформировано автоматическое наименование серверов - потребуется ручная конфигурация hostname и домена после установки ОС.
 
Перед вводом сервера в домен установите ipa-client с зависимостями.

Комментариев нет:

Отправить комментарий

Уважаемый коллега, Ваш комментарий пройдёт модерацию, чтобы избежать спам-атак в ленте. Спасибо за понимание.