Debian как установить по сети
option domain-name-servers 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.2.0 netmask 255.255.255.0
range 192.168.2.10 192.168.2.120;
option routers 192.168.2.1;
option domain-name "debianfarm.org";
filename "pxelinux.0";
host firstserver
option host-name "firstserver";
hardware ethernet 08:00:27:91:DA:57;
fixed-address 192.168.2.21;
>
>
Отредактируем файл ./pxelinux.cfg/default в корне TFTP так, чтобы загрузчик syslinux не ждал реакции пользователя после загрузки, а сам через секунду начинал установку. Для этого значение опции timeout установим равное 1.
Теперь нужно добавить к параметрам ядра переменную для debian-installer для загрузки файла preseed. В этом файле хранятся значения переменных, которые обычно спрашиваются у пользователя во время установки. То есть, вы заранее создаёте файл с «ответами на вопросы» установщика Debian (о его содержимом позже). Но есть один нюанс, о котором не сказано в wiki: файл preseed загружается не сразу после запуска установщика, а только после того, как будут заданы пользователю некоторые вопросы, а это значит, что используя только файл preseed нельзя добиться полностью автоматической установки. Поэтому, ответы на вопросы установщика до загрузки preseed нужно передать параметрами загрузки ядра, которые потом подхватит установщик Debian. Впрочем, можно было бы передать ядру все нужные «ответы на вопросы» установщика, но вам не позволит это зделать ограничение на максимальную длинну строки запуска ядра.
Передавая значения этих переменных ядру можно опустить первую часть названия переменной (та, которая до слеша вместе со слешем). Но так делать нельзя для таких переменных, у которых вторая часть названия конфликтует с другой переменной, например:
console-keymaps-at/keymap нужно указывать полностью, так как есть ещё переменная console-keymaps-usb/keymap.
Конфиг syslinux теперь должен выглядеть примерно так:
location /
root /path/to/dir/with/preseed/;
>
>
Впрочем, файл preseed можно разместить где угодно (dropbox, etc.)
d-i netcfg/wireless_wep string
d-i passwd/make-user boolean false
d-i passwd/root-password password juststrongpassword
d-i passwd/root-password-again password juststrongpassword
d-i clock-setup/utc boolean true
d-i time/zone string US/Eastern
d-i clock-setup/ntp boolean true
d-i partman-auto/method string lvm
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-md/confirm boolean true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
tasksel tasksel/first multiselect standard
d-i pkgsel/include string openssh-server
popularity-contest popularity-contest/participate boolean false
d-i finish-install/reboot_in_progress note
Что-то комментировать здесь нет смысла, ибо каждая переменная дублирует предельно понятные диалоги установщика, по каждой можно посмотреть комментарий в примере.
Способ разметки диска был просто скопипащен из примера, так как он зависит от количества жёстких дисков, их размера и нужд сервера.
Ну вот и всё, теперь останется только включить те машины, на которые нужно установить Debian, всё остальное произойдёт «само».
В этом руководстве я расскажу как установить последнюю версию сервера Debian 9 через PXE-сервер с удаленных зеркал.
Для настройки среды PXE мы будем использовать DHCP-сервер ISC-DHCP, а файлы Netboot Debian будут обслуживаться в локальной сети сервером TFTPD-HPA. Установка системы через PXE может увеличить скорость установки как в случае развертывания нескольких установок Debian в течение короткого периода времени так и в тех случаях, когда машины не оснащены устройством CD/DVD ROM.
Требования
- Debian 9 установленный на выделенной или на виртуальной машине.
- Сетевой интерфейс с настроенным статичным IP адресом в том сегменте сети, который будет использоваться для динамического выделения IP-адреса и других связанных с ним настроек DHCP и PXE.
- Локальный или удаленный аккаунт на сервере Debian с привилегиями root или прямой доступ к root аккаунту через консоль или SSH.
- Интернет подключение необходимое для установки Debian по сети.
Начальная конфигурация
На первом этапе вам необходимо убедиться, что система Debian, которую мы будем использовать для установки новых серверов, имеет сетевой интерфейс, который будет использоваться для привязки к нему DHCP-сервера, настроенному со статическим IP-адресом.
Чтобы вручную настроить карту сетевого интерфейса, откройте файл сетевых интерфейсов и отредактируйте его, используя ваш любимый текстовый редактор, например nano. Замените строки настроек IP, описанные ниже, в соответствии с вашими сетевыми настройками.
Примерное содержимое файла:
После правки файла сетевых настроек сохраните его, закройте и опустите сетевой интерфейс, затем снова его поднимите для применения настроек так как показано ниже. В результате, ваша сетевая карта названная (к примеру) ens33, получит настройки которые вы указали в файле.
Для проверки того что новый IP адрес был применен для сетевого интерфейса можно выполнить следующую команду:
Иногда настройки IP не применяются при простом перезапуске сети или отключении и включении сетевого интерфейса. В этом случае придётся перезапустить систему.
Так же перед продолжением советую выполнить полное обновление системы, если вы по каким-либо причинам его ещё не сделали:
Следующим шагом будет установка некоторых необходимых утилит, которые будут использоваться для дальнейшего управления вашей системой из командной строки.
Установка и настройка сервера ISC-DHCP
Теперь сохраните резервную копию основного файла настроек сервера ISC-DHCP и измените содержимое конфигурационного файла на следующие настройки:
Содержимое dhcpcd.conf:
В приведенном выше файле конфигурации замените следующие строки соответственно.
Для определения диапазона сети в котором DHCP будет выделять IP адресадля вашего сегмента сети
option routers = IP вашего шлюза
option broadcast-address = широковещательный адрес
option subnet-mask = маска подсети
option ntp-servers
option time-servers = IP адрес вашего сетевого сервера времени NTP
option domain-name = доменное имя вашей сети
option domain-name-servers = IP адреса ваших DNS серверов
if option arch = 00:07 or option arch = 00:09 = если конечное устройство это машина с UEFI, загрузка пойдет с помощью файла bootnetx64.efi все другие не UEFI машины будут грузиться используя файла pxelinux.0. Обычно это машины со старым BIOS.
next-server 192.168.1.102 = это IP адрес TFTP сервера где файлы pxelinux.0 или bootnetx64.efi в вашей сети. В нашем случае TFTP сервер расположен на той же самой машине.
default-lease-time = время по умолчанию для выделенного IP адреса, перед тем как истечет срок его аренды.
max-lease-time = максимальное время до срока истечения аренды IP адреса.
Теперь откройте файл isc-dhcp-server в директории /etc/default/ для правки, переместитесь в конец файла и добавьте вашу сетевую карту настроенную на статичный IP адрес в строку INTERFACESv4 так как показано в примере ниже. Убедитесь что вы добавили соответствующее имя вашего сетевого интерфейса. Используйте команды ip или ifconfig для вывода списка существующих сетевых интерфейсов и поиска правильного имени.
Вывод файла isc-dhcp-server
Наконец, перезапустите демона DHCP для применения изменений. Проверьте статус сервиса DHCP используя приведенную ниже команду, для проверки того, что сервис был корректно запущен.
так же, выполните команду ss или netstat для вывода списка открытых сокетов и проверки что DHCP сервер работает.
Если утилита netstat не установлена в системе вы можете установить её этой командой:
Установка TFTP сервера
Чтобы обслуживать файлы netboot, нужные клиентам для загрузки Debian удаленно через PXE и TFTP, вам также необходимо установить TFTP-сервер в вашей системе. Одним из наиболее распространенных и защищенных TFTP-серверов, доступных для локальных сетей, является сервер tftpd-hpa. Пакеты TFTP-HPA можно установить из официальных репозиториев, предлагаемых Debian 9. Выполните следующую команду, чтобы установить сервер tftpd-hpa в Debian 9.
После того как пакет будет установлен, откройте файл конфигурации TFTPD-HPA и убедитесь что он имеет следующее содержимое.
Вывод файла tftpd-hpa:
Флаг create позволяет удалённым клиентам загружать файлы на tftp сервер. Этот параметр опасен, поскольку произвольные пользователи могут загружать или удалять файлы из корневого пути сервера TFTP.
Наконец, включите службу в вашей системе и запустите TFTP-сервер. проверьте статус демона tftp, выполнив следующую серию команд:
Вы так же можете использовать команду netstat или ss для получения списка всех открытых сетевых сокетов которые слушает ваша система. 67 и 69 порты UDP должны быть открытыми в вашей сети для корректной работы DHCP и TFTP сервера. Вы можете открыть эти порты в вашем фаерволле следующей командой:
Если вы используете правила iptables для управления политикой брандмауэра на своем сервере Debian, добавьте следующие правила, чтобы разрешить входящий трафик на портах 67 и 69 UDP, чтобы клиенты могли обращаться к серверам DHCP и TFTP.
На следующем шаге мы установим утилиты загрузчика Syslinux, выполнив следующую команду.
Развертывание файлов сетевой загрузки Debian 9
После загрузки архива Debian netinstall распакуйте его содержимое напрямую в корень TFTP следующей командой.
Так же скопируйте файл memdisk поставляемый пакетом Syslinux в корень TFTP и осмотрите содержимое директории TFTP. Директория /srv/tftp должна иметь содержимое как показано на скриншоте.
Теперь, создайте символьную ссылку для загрузочного файла UEFI предоставляемого пакетом Debian netinstall в корень TFTP. И выполните длинный вывод списка файлов директории TFTP чтобы проверить что символьная ссылка правильно указывает на файл сетевой загрузки UEFI.
Сервер PXE читает и запускает конфигурационные файлы расположенные в директории pxelinux.cfg из корня TFTPв таком порядке: GUID файлы, MAC файлы и файл по умолчанию. Директория pxelinux.cfg уже была нами создана и размещена с конфигурационным по умолчанию файлом PXE потому как ранее мы извлекли требуемые файлы из архива Debian netinstall в директорию/srv/tftp. Нет необходимости дополнительно изменять конфигурационный файл PXE по умолчанию из каталога pxelinux.cfg. Однако, который контролирует актуальное загрузочное меню для Debian называется txt.cfg и расположен в директории /srv/tftp/debian-installer/amd64/boot-screens/ . Дефолтный конфигурационный файл pxe из директории pxelinux.cfg это по сути символьная ссылка на файл txt.cfg. Чтобы изменить или добавить другие параметры, которые нужно передать ядру в процессе сетевой загрузки или добавить другие записи или загрузить другие дистрибутивы Linux через PXE-сервер, вы должны открыть файл конфигурации txt.cfg PXE по умолчанию с помощью следующей команды и сделать соответствующие изменения.
txt.cfg:
Стандартная установка:
Если вы хотите использовать режим восстановления Debian через PXE, добавьте запись в этот файл с приведенными ниже настройками.
Режим восстановления:
Чтобы добавить записи, необходимые для загрузки Debian по сети в экспертном режиме или использовать режим автоматической установки, добавьте дополнительные настройки в файл txt.cfg, как показано в приведенных ниже примерах.
Установка в режиме Expert:
Установка в автоматическом режиме:
Так же, как вы можете увидеть по содержимому, файлы образов ядра и initrd.gz, загружаемые в оперативную память клиента через сетевой протокол TFTP, после начального меню PXE, расположены в директории /srv/tftp/debian-installer/amd64/. Для дальнейшего обновления ядра и образа init вам достаточно будет заменить эти два файла на новые файлы поставляем Debian.
Вот и всё! Теперь вы можете загружать клиентские машины по сети, используя все те же самые записи в меню, какие отображаются при загрузке Debian с DVD и запускать установку Debian 9 через PXE сервер.
Записи журнала TFTP-сервера можно посмотреть в файле daemon.log. Нижеприведенные скриншоты иллюстрируют выдержку записей журнала, выданных серверами DHCP и TFTP.
Можете так же выполнить следующую команду, чтобы посмотреть журнал генерируемый сервером TFTP.
Чтобы посмотреть расширенную информацию об аренде, предоставленной сервером DHCP своим клиентам, отобразите содержимое файла dhcpd.leases с помощью команды cat, как показано в приведенном ниже примере.
В итоге: у вас теперь есть в вашей сети PXE сервер. Вы можете запускать установку Debian по сети настроив ваши клиентские машины на загрузку по PXE. Вы можете запускать сетевую загрузку клиентских машин по нажатию специальных клавиш во время прохождения инициализации POST. Какие это клавиши, вам потребуется узнавать из документации производителя вашей материнской платы.
Сам процесс установки Debian по сети очень простой и (за несколькими незначительными отличиями) в принципе такой же как установка с DVD или загрузочной USB flash.
Все операционные системы предоставляют команды и интерфейс для настройки сети из командной строки. В дистрибутивах Linux нам даже это не нужно, потому что мы можем сами редактировать конфигурационные файлы и вносить необходимые изменения. В некоторых случаях настройка через конфигурационные файлы будет проще, чем с помощью графических утилит, потому что вы можете полностью все контролировать.
В этой статье будет рассмотрена настройка сети Debian 9. Мы разберем как настроить имя хоста, сетевые интерфейсы и получить IP адреса для них. Эта инструкция подойдет как для обычных компьютеров, так и для серверов.
1. Имя компьютера
Чтобы посмотреть текущее имя хоста вы можете использовать команду hostname:
Установить новое имя хоста очень просто, для этого достаточно передать его команде hostname в качестве параметра:
После перезагрузки имя хоста не сохранится, поэтому вам нужно отредактировать файл /etc/hostname и добавить туда новое имя хоста, уже это имя останется даже после перезагрузки:
Осталось только связать новое имя хоста с локальным IP адресом, чтобы иметь возможность обращаться по нему к компьютеру. Для этого добавьте такую строку в файл /etc/hosts:
127.0.0.1 localhost debian-pc
2. Список сетевых интерфейсов
Перед тем как мы сможем настроить сеть нужно посмотреть какие сетевые интерфейсы подключены к вашей системе и какие имена им присвоены. Для этого наберите:
Также можно посмотреть только имена интерфейсов, в папке /sys/class/net:
3. Настройка сетевого интерфейса
Для настройки сетевых интерфейсов в операционных системах, основанных на Debian, используется файл /etc/network/interfaces. Здесь должно находится описание для каждого интерфейса, способ получения IP а другие параметры. В одном файле может быть настроено несколько интерфейсов. Описание каждого интерфейса начинается со слова auto после которого идет имя интерфейса.
Это означает, что указанный интерфейс должен быть запущен при выполнении ifup с опцией -a, именно она используется при инициализации системы. После строки auto идут другие строки настроек, которые касаются именно этого интерфейса. Вот так, например, выглядит строка для включения локального интерфейса:
Перед тем как рассматривать все более подробно, поговорим про опции, которые можно использовать:
- pre-up - выполнить команду перед запуском интерфейса;
- post-up - выполнить команду после запуска интерфейса;
- up - выполнить команду при запуске интерфейса;
- pre-down - команда перед отключением;
- post-down - команда после отключения;
- iface - указывает имя интерфейса;
- inet - указывает
- description - создать имя синоним для устройства;
- address - устанавливает ip адрес для статического соединения;
- netmask - установка маски сети;
- broadcast - широковещательный адрес;
- metric - приоритет для шлюза по умолчанию;
- gateway - шлюз по умолчанию;
- hwaddress - установить MAC адрес;
- mtu - размер одного пакета.
Это далеко не все опции, которые можно использовать, но основные из них и уже с помощью этого можно настроить большинство из того, что нужно. Дальше рассмотрим различные варианты настройки интерфейсов, самый часто используемый на домашних компьютерах - это получение ip адреса по DHCP, в таком случае, ip адрес может меняться при каждом запуске. Рассмотрим его первым.
Настройка динамического IP
Мы будем получать IP адрес через DHCP сервер, оттуда же будут получены шлюзы и DNS сервер, поэтому для работы достаточно добавить две строчки. Например, настроем получение IP по DHCP для интерфейса eth0:
auto eth0
iface eth0 inet dhcp
Но если необходимо, то вы можете установить вручную ip адрес DNS сервера:
Для локального интерфейса настройка будет выполняться таким образом:
auto lo
iface lo inet loopback
Здесь мы не получаем адрес по DHCP, но присваиваем локальный адрес 127.0.0.1.
Настройка статического IP адреса
Если вы хотите установить именно статический IP, то здесь все будет немного сложнее. Нам нужно знать не только этот свободный IP адрес, но и шлюз, маску сети и DNS сервер. Для настройки используется такой набор строк:
iface eth0 inet static
address 192.168.1.15
netmask 255.255.255.0
gateway 192.168.1.1
broadcast 192.168.0.255
dns-nameserver 8.8.8.8
Здесь указывается, что мы будем использовать метод получения ip адреса static, а затем расписаны все параметры. Но это еще далеко не все, что можно сделать с помощью файла /etc/network/interfaces. Также вы можете создавать виртуальные интерфейсы.
Настройка виртуальных интерфейсов
В некоторых случаях нам может понадобиться создать виртуальный интерфейс. Это позволяет добавить еще один IP адрес к интерфейсу. Чтобы создать такой интерфейс достаточно дописать его номер после двоеточия:
auto eth0:0
iface eth0:0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
Имя интерфейса, для которого создается виртуальный интерфейс должно совпадать с реальным.
Настройка мостов
Сетевые мосты между виртуальными интерфейсами в системе позволяют настроить полноценный доступ к интернету из виртуальных машин. Они могут применяться для KVM,qemu,XEN и других конфигураций. Для настройки моста используйте:
auto br0
iface br0 inet static
address 192.168.1.20
network 192.168.1.0
netmask 255.255.255.0
broadcast 192.168.1.255
gateway 192.168.1.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
bridge_maxwait 0
Здесь мы указываем имя интерфейса br0, дальше выполняем стандартную настройку получения статического IP адреса, затем связываем этот мост с интерфейсом eth0.
Перезагрузка сети
После внесения всех изменений необходимо перезапустить сеть, чтобы сетевые настройки debian вступили в силу, для этого наберите:
sudo systemctl restart networking
Выводы
В этой статье мы рассмотрели как выполняется настройка сети Debian 9. Конечно, это еще далеко не все, что возможно настроить, но с помощью этих команд можно в большинстве случаев заставить работать сеть. настройка сети из консоли debian дело сложное, в графическом интерфейсе все делается намного проще, с помощью NetworkManager все настраивается автоматически. Надеюсь, эта информация была полезной для вас.
Админу на заметку - 27. Как установить любой популярный Linux по сети используя netboot.xyz
Мы все привыкли к онлайн-установщикам, действительно, зачем занимать место инсталляционными пакетами и образами, когда всегда можно получить все это из сети, причем самую последнюю версию. Практически все популярные Linux-дистрибутивы также предлагают образы для сетевой установки, но дистрибутивов может быть много, а еще нужно учитывать разрядности, архитектуры, версии релизов и как-то поддерживать это в актуальном состоянии. Но что, если всё заменить единственным образом размером менее 1 МБ?
Что представляет из себя netboot.xyz? Это открытый проект, который позволяет выполнить сетевую загрузку практически любого дистрибутива с использованием iPXE - открытой реализации ПО для загрузки по сети. Все что вам нужно для начала работы проектом - это загрузить с официального сайта загрузочный образ размером около 1МБ.
Доступны два варианта загрузчика: Legacy (BIOS) и UEFI, что позволяет работать как с современными, так и устаревшими системами. Сам образ также доступен в нескольких вариантах: ISO, образ для флешки или флоппи-диска, либо для PXE-сервера.
При загрузке с него нас встречает следующее меню:
Уже на этом этапе можно оценить все богатство возможностей. Утилита автоматически определяет оптимальную архитектуру, но в случае необходимости ее можно переключить на любую доступную используя одноименный пункт:
Основная задача проекта - сетевая установка Linux и Unix-like систем, перейдем в пункт Linux Network Installs, где нас встретит обширный список поддерживаемых дистрибутивов:
Но это лишь та часть из них, которые имеют официальные образы для сетевой установки. Они же наиболее удобны в работе, позволяя максимально быстро установить систему с минимально возможным объемом скачиваемых данных.
Другая часть дистрибутивов доступна в пункте Live CDs, но в этом случае по сети будет скачан практически полный образ системы и на вашем ПК должно быть достаточное количество оперативной памяти для размещения образа и его запуска.
Вернемся к сетевой установке, по умолчанию нам предлагаются актуальные релизы, особых сложностей тут нет, выбираем что нам нужно и переходим к установке:
Что важно - дистрибутивы скачиваются из официальных источников, и вы можете быть спокойны, это не чья-то самодеятельность, а полностью оригинальный дистрибутив.
Ну а далее все просто и стандартно, как будто мы загрузились с обычного установочного образа:
И просто вписываем имя необходимого нам дистрибутива, допустим это будет Debian 5 - Lenny:
Немного подождем, пока будут скачаны необходимые компоненты и действительно перед нами Lenny:
Налицо значительная экономия сил и средств, вам не нужно искать, качать, размещать, записывать и т.д. и т.п. Можно просто выбрать нужный дистрибутив и сразу приступить к установке.
При этом поддерживается не только Linux и Unix-like системы, можно также выполнить сетевую установку Windows, но для этого вам потребуется собственная Служба развертывания Windows, адрес сервера которой вы должны явно указать.
Также рекомендуем заглянуть в раздел Utilites, там собраны различные образы служебных и восстановительных дисков практически на все случаи жизни. А ситуации бывают разные, иногда возможность таким образом загрузить нужный образ может дорогого стоить.
Скажем можно спокойно проверить ОС на вирусы, особенно если в самой ОС явные признаки заражения и нет возможности даже запустить портативную антивирусную утилиту:
Кому может быть интересен данный проект? Да практически любому IT-специалисту. В качестве применения мы видим несколько основных направлений. Одно из них - универсальная загрузочная флешка, причем можно использовать даже старую модель малой емкости. Второе - использование в системах виртуализации. В этом случае вы можете заменить коллекцию образов, занимающую место и требующую поддержания в актуальном состоянии на один единственный образ. Но возможные применения этим не исчерпываются, и вы без труда найдете собственные варианты для использования netboot.xyz.
Читайте также: