В различных платформах существует функционал по развёртыванию образов ОС на физическое оборудование, 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
Настраиваем TFTP /etc/xinetd.d/tftp
Правим меню для PXE-загрузчика, предварительно создав
файл /var/lib/tftpboot/linux-install/pxelinux.cfg/default
Выделенная жёлтым строка - это веб-сервер, который мы настроим чуть позже.
Клиент, получив адрес по PXE будет искать полный образ ОС для инсталляции по NFS, посему, перед конфигурацией веб-сервера, мы делаем папку с правами только чтение и экспортируем её по NFS для нашей доверенной сети (пример: /NTbootShare *(ro)), затем копируем в неё содержимое DVD диска с RELS.
ПРИМЕЧАНИЕ! Не забывайте после конфигурации сервисов выполнять их перезагрузку.
#service dhcpd restart
#service xinetd restart
#service nfs restart
Теперь займёмся фалом ответов, для этого мы используем мастер system-config-kickstart. Те, кто работал с аналогичными решениями у Microsoft или других вендоров найдут это очень удобным. Ниже несколько примеров интерфейса:
Да, у нас есть, так же, возможности по запуску скриптов, либо до начала установки, либо после нее - что очень удобно.
На выходе я получил такой вот kickstart.cfg файл.
Теперь вернёмся к веб-серверу. Мы создаём директорию
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
#service httpd restart
ПРИМЕЧАНИЕ! Не забывайте после конфигурации сервисов выполнять их перезагрузку.
ВНИМАНИЕ! Тем, кто привык работать с System Center будет непривычно, что тут нет защиты "от дурака" в виде ввода пароля перед стартом последовательности задач, т.е. если у вас есть скрипт автоматизации с разбиением разделов и т.д., при "поимке" сервером PXE (если у него принудительно выставлена первой загрузка с сети) задания на установку, система затрёт всё имеющееся, выполняя последовательность задач скрипта (в том числе после установки и перезагрузки). Лучше использовать явно нажатие F12 с переключением в сетевую загрузку.
Обратите внимание, что в примере на третьем скриншоте отсутствует диалоговое окно настройки дисковых массивов - разбиение дисков производится исходя из файла ответов автоматически. После окончания установки система автоматически перезагрузится.
После установки мы получаем классический вариант экрана приветствия.
Вводим логин и пароль и входим в систему.
ПРИМЕЧАНИЕ! В данной последовательности задач не сформировано автоматическое наименование серверов - потребуется ручная конфигурация hostname и домена после установки ОС.
Перед вводом сервера в домен установите ipa-client с зависимостями.
Наша задача быстро получить большое количество серверов на базе 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
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
#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
Options Indexes FollowSymLinks
ПРИМЕЧАНИЕ! Не забывайте после конфигурации сервисов выполнять их перезагрузку.
ВНИМАНИЕ! Тем, кто привык работать с System Center будет непривычно, что тут нет защиты "от дурака" в виде ввода пароля перед стартом последовательности задач, т.е. если у вас есть скрипт автоматизации с разбиением разделов и т.д., при "поимке" сервером PXE (если у него принудительно выставлена первой загрузка с сети) задания на установку, система затрёт всё имеющееся, выполняя последовательность задач скрипта (в том числе после установки и перезагрузки). Лучше использовать явно нажатие F12 с переключением в сетевую загрузку.
Обратите внимание, что в примере на третьем скриншоте отсутствует диалоговое окно настройки дисковых массивов - разбиение дисков производится исходя из файла ответов автоматически. После окончания установки система автоматически перезагрузится.
После установки мы получаем классический вариант экрана приветствия.
Вводим логин и пароль и входим в систему.
ПРИМЕЧАНИЕ! В данной последовательности задач не сформировано автоматическое наименование серверов - потребуется ручная конфигурация hostname и домена после установки ОС.
Перед вводом сервера в домен установите ipa-client с зависимостями.
Комментариев нет:
Отправить комментарий
Уважаемый коллега, Ваш комментарий пройдёт модерацию, чтобы избежать спам-атак в ленте. Спасибо за понимание.