Для установки ОС на новые серверы мы используем PXE (Preboot Execution Environment). Сервер загружается по сети, получает IP через DHCP, загружает установщик через TFTP и автоматически устанавливает ОС по preseed-шаблону.
# Компоненты PXE-сервера
sudo apt install dnsmasq pxelinux syslinux-efi
# /etc/dnsmasq.conf — DHCP + TFTP для PXE
interface=eth1
dhcp-range=172.16.1.100,172.16.1.200,255.255.255.0,1h
# UEFI PXE boot
dhcp-match=set:efi-x86_64,option:client-arch,7
dhcp-match=set:efi-x86_64,option:client-arch,9
dhcp-boot=tag:efi-x86_64,grubnetx64.efi.signed
# Legacy PXE boot (для старых серверов)
dhcp-match=set:bios,option:client-arch,0
dhcp-boot=tag:bios,pxelinux.0
enable-tftp
tftp-root=/srv/tftp
Preseed-файл для автоматической установки Debian:
# /srv/www/preseed/server-standard.cfg
d-i debian-installer/locale string en_US.UTF-8
d-i keyboard-configuration/xkb-keymap select us
d-i netcfg/choose_interface select auto
# Разметка диска: GPT + ESP + RAID1 (boot) + LVM
d-i partman-auto/method string lvm
d-i partman-auto/disk string /dev/sda /dev/sdb
d-i partman-auto-lvm/guided_size string max
d-i partman-efi/non_efi_system boolean true
# Пакеты
tasksel tasksel/first multiselect ssh-server
d-i pkgsel/include string \
vim htop tmux curl wget git \
prometheus-node-exporter \
smartmontools mdadm
# Post-install: регистрация в системе управления
d-i preseed/late_command string \
in-target bash -c 'curl -s https://deploy.dc1.local/register | bash'
Весь процесс от включения нового сервера до готовой ОС с базовым мониторингом занимает 15 минут без участия инженера. Подробнее о серверном администрировании и автоматизации — на itfresh.ru.
Оставить комментарий