Удаленная Установка Debian: Pxe + Ssh.

Задача Установите Debian Lenny на сервер, расположенный на удаленном сайте.

На объекте уже есть один сервер на базе Linux, и есть инженер, который сможет подключить новый сервер к сети и включить его.

Решение Загрузите образ netinstall через PXE и используйте пакет сетевой консоли для установки с помощью ssh. Как обычно в интернете много документации, я постарался собрать всё воедино.

На существующем сервере (там, например, будет установлен тот же Debian Lenny) нам понадобится dhcp3-сервер, tftpd-hpa и любой http-сервер.

Настройка dhcp3-сервера:

 
 /etc/dhcp3/dhcpd.conf
 
 ddns-update-style none;
 option domain-name "local";
 option domain-name-servers 192.168.1.1;
 
 default-lease-time 600;
 max-lease-time 7200;
 
 authoritative;
 
 log-facility local7;
 
 subnet 192.168.1.0 netmask 255.255.255.0 {
  option routers 192.198.1.1;
  option domain-name-servers 192.168.1.1;
  option domain-name "local";
  next-server 192.168.1.1;
  filename "pxelinux.0";
  range 192.168.1.100 192.168.1.250;
 }
 
Опция next-server передаст IP-адрес TFTP-сервера загрузчику PXE сетевой карты, а имя файла будет именем файла с загрузчиком Linux. TFTP не требует какой-либо специальной настройки, поэтому далее нам нужно настроить конфиги загрузчика pxelinux, они находятся в файле /var/lib/tftpboot/pxelinux.cfg/default. Это должно выглядеть так:
 
 default lenny-ssh
 prompt 0
 label lenny-ssh
   kernel linux
   append initrd=initrd.gz locale=en_US console-keymaps-at/keymap=us netcfg/choose_interface=eth0 netcfg/get_hostname=debian netcfg/get_domain=local url= http://192.168.1.1/preseed.cfg 
 
Внимание , в этом конфиге важны отступы! Если возникают проблемы, вы можете включить отладку, добавив параметр DEBCONF_DEBUG=5. Файлы pxelinux.0, linux и initrd.gz взяты из репозиторий , вы также можете найти его там pxelinux.0 .

Файл preseed.cfg должен выглядеть следующим образом:

 
 d-i mirror/country          string manual
 d-i mirror/http/hostname    string mirror.yandex.ru
 d-i mirror/http/directory   string /debian
 d-i mirror/http/proxy       string
 
 d-i network-console/password             password        r00tme
 d-i network-console/password-again       password        r00tme
 d-i preseed/early_command                string          anna-install network-console
 d-i anna/choose_modules                  string          network-console
 
 tasksel tasksel/first multiselect none
 d-i pkgsel/include string openssh-server sudo screen
 d-i pkgsel/upgrade select full-upgrade
 
Во всей мане есть опции, связанные с локалью и настройками сети, у меня это не сработало, возможно из-за того, что файл preseed.cfg подключается после установки этих параметров, поэтому их нужно передавать как опции initrd. Собственно, дальше включаем новую железку, ищем в логах dhcp IP-адрес, который получил хост, и подключаемся к нему по ssh с логином установщика и паролем r00tme По аналогии можно настроить полностью автоматическую установку, добавив preseed.cfg. Лично мне этот вариант не удобен, поскольку очень часто серверы имеют разные конфигурации дисковой подсистемы и единого «рецепта» не существует.

Ссылки
Официальная документация Вторая официальная инструкция Док, который помог больше всех , на японском Теги: #linux #Системное администрирование #pxe #Debian #ssh #preseed #netinstall #network-console
Вместе с данным постом часто просматривают: