В прошлый раз я наверное не до конца понял когда разбирал, как развернуть Debian 10 через сервис FOG Project, точнее я просто использовал за основу дистрибутив debian-10.0.0-amd64-netinst.iso, вот только он не содержит большинства файлов, а если и нужны они то они загружаются с интернета через мою проксю apt-cacher-ng. Но вот в ходе использования данной заметки «Как развернуть Debian 10 через Fog Project» я натыкался, что установщик не видит то жесткий диск, то сеть компьютера, сервера и даже гипервизора Debian 10 + Proxmox 6. Углубленное чтение на этот счет вывело меня, а почему я не использовал связку Debian DVD + NFS + FOG. Ведь дистрибутив DVD размером более 4Gb, а значит возможно в нем есть недостающие мне приложения.

Потому сегодня будет более расширенная заметка по настройке сетевого развертывания Debian 10 через сервис FOG Project. Также это не просто заметка — это практика которую теперь использую Я в повседневности.

Шаг №1: Подключаюсь к серверу с сервисом FOG Project

ekzorchik@navy:~$ srv-fog (у меня настроен алиас: nano ~/.bashrc)

ekzorchik@navy:~$ alias | grep srv-fog

alias srv-fog='sshpass -p 712mbddr@ ssh -o "StrictHostKeyChecking no" ekzorchik@172.35.35.7 -p 22'

Шаг №2: Скачиваю Debian 10 DVD на сервер где у меня развернут сервис FOG Project

ekzorchik@srv-fog:~$ wget https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-10.1.0-amd64-DVD-1.iso

ekzorchik@srv-fog:~$ file debian-10.1.0-amd64-DVD-1.iso

debian-10.1.0-amd64-DVD-1.iso: DOS/MBR boot sector; partition 2 : ID=0xef, start-CHS (0x3ff,254,63), end-CHS (0x3ff,254,63), startsector 23504, 5664 sectors

Шаг №3: Создаю структуру каталогов для iPXE Menu выбрав которое запуститься сетевая автоматизированная установка:

ekzorchik@srv-fog:~$ sudo mkdir -p /images/os/debian/10

ekzorchik@srv-fog:~$ sudo mkdir -p /tftpboot/os/debian/10

ekzorchik@srv-fog:~$ sudo mount -o loop -t iso9660 /home/ekzorchik/debian-10.1.0-amd64-DVD-1.iso /mnt/loop

mount: /mnt/loop: WARNING: device write-protected, mounted read-only.

ekzorchik@srv-fog:~$ sudo cp -R /mnt/loop/* /images/os/debian/10/

ekzorchik@srv-fog:~$ sudo umount /mnt/loop

ekzorchik@srv-fog:~$ cd /tftpboot/os/debian/10/

ekzorchik@srv-fog:/tftpboot/os/debian/10$ sudo wget http://ftp.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/debian-installer/amd64/initrd.gz

ekzorchik@srv-fog:/tftpboot/os/debian/10$ file initrd.gz && md5sum * && ls -lh initrd.gz

initrd.gz: gzip compressed data, max compression, from Unix

01437ec6d6c2302bdebd2c0fad25fa68 initrd.gz

-rw-r--r-- 1 root root 30M Sep 5 11:25 initrd.gz

ekzorchik@srv-fog:/tftpboot/os/debian/10$ sudo wget http://ftp.debian.org/debian/dists/buster/main/installer-amd64/current/images/netboot/debian-installer/amd64/linux

ekzorchik@srv-fog:/tftpboot/os/debian/10$ file linux && md5sum * && ls -lh linux

linux: Linux kernel x86 boot executable bzImage, version 4.19.0-6-amd64 (debian-kernel@lists.debian.org) #1 SMP Debian 4.19.67-2 (2019-08-28), RO-rootFS, swap_dev 0x5, Normal VGA

01437ec6d6c2302bdebd2c0fad25fa68 initrd.gz

0be9350d00f497fa4ad2c82742901082 linux

-rw-r--r-- 1 root root 5.1M Sep 5 11:25 linux

ekzorchik@srv-fog:/tftpboot/os/debian/10$ cd ~

ekzorchik@srv-fog:~$ sudo chown -R fog:root /tftpboot/os/debian/

ekzorchik@srv-fog:~$

ekzorchik@srv-fog:/tftpboot/os/debian/10$ ls -lh && md5sum *

total 35M

-rw-r--r-- 1 root root 30M Sep 5 11:25 initrd.gz

-rw-r--r-- 1 root root 5.1M Sep 5 11:25 linux

01437ec6d6c2302bdebd2c0fad25fa68 initrd.gz

0be9350d00f497fa4ad2c82742901082 linux

ekzorchik@srv-fog:/tftpboot/os/debian/10$ cd ~

ekzorchik@srv-fog:~$ sudo chown -R fog:root /tftpboot/os/debian/

Шаг №4: Установку Debian 10 буду производить только Server редакции, а значит ни какого графического окружения, а не как в прошлый раз Desktop.

ekzorchik@srv-fog:~$ sudo nano /var/www/fog/debian/buster/buster.seed

d-i debian-installer/locale string en_US.UTF-8

d-i debian-installer/language string en

d-i localechooser/supported-locales multiselect en_US.UTF-8

d-i debian-installer/country string US

d-i console-setup/ask_detect boolean false

d-i console-setup/layoutcode string us

d-i console-setup/modelcode string SKIP

d-i keyboard-configuration/xkb-keymap select us

d-i netcfg/get_hostname string unassigned-hostname

d-i netcfg/get_domain string unassigned-hostname

d-i mirror/http/hostname string srv-debian

d-i mirror/hthtp/domain string polygon.local

d-i passwd/user-fullname string

d-i passwd/root-login boolean false

d-i passwd/username string ekzorchik

d-i passwd/user-password password 712mbddr@

d-i passwd/user-password-again password 712mbddr@

d-i passwd/user-default-groups string sudo

d-i user-setup/allow-password-weak boolean true

d-i netcfg/choose_interface select auto

d-i mirror/country select US

d-i mirror/http/mirror select deb.debian.org

d-i mirror/http/proxy string http://172.35.35.8:3142/

d-i cdrom-detect/manual_config boolean false

d-i clock-setup/utc boolean true

d-i clock-setup/ntp boolean true

d-i time/zone string Europe/Moscow

d-i partman/confirm boolean true

d-i partman/choose_partition select finish

d-i partman/confirm_nooverwrite boolean true

d-i partman-auto/disk string /dev/[sv]da

d-i partman-auto/method string lvm

d-i partman-auto/choose_recipe select atomic

d-i partman-lvm/device_remove_lvm boolean true

d-i partman-lvm/confirm boolean true

d-i partman-lvm/confirm_nooverwrite boolean true

d-i partman-auto-lvm/guided_size string max

d-i partman-partitioning/confirm_write_new_label boolean true

d-i grub-installer/grub2_instead_of_grub_legacy boolean true

d-i grub-installer/only_debian boolean true

d-i grub-installer/bootdev string /dev/[sv]da

d-i pkgsel/update-policy select none

tasksel tasksel/first multiselect standard

d-i pkgsel/include string tmux mercurial vim build-essential multipath-tools lsscsi lvm2 htop net-tools openssh-server

d-i popularity-contest/participate boolean false

d-i finish-install/reboot_in_progress note

ekzorchik@srv-fog:~$ sudo chown -R www-data:www-data /var/www/fog/debian/buster/buster.seed

Шаг №5: Теперь создаю меню загрузки через Webпанель администрирования FOG.

http://IP&DNS/fog — user&pass — FOG Configuration — iPXE New Meny Entry

  • Menu Item: Debian 10 NFS
  • Description: Debian 10 NFS
  • Parameters:

kernel tftp://${fog-ip}/os/debian/10/linux

initrd tftp://${fog-ip}/os/debian/10/initrd.gz

imgargs linux initrd=initrd.gz root=/dev/nfs netboot=nfs nfsroot=${fog-ip}:/images/os/debian/10/ locale=en_US.UTF-8 keyboard-configuration/xkb-keymap=us console-keymaps-at/keymap=us netcfg/get_hostname=srv-debian netcfg/get_domain=polygon.local url=http://172.35.35.7/fog/debian/buster/buster.seed ip=dhcp rw boot || goto MENU

  • Menu Show with: All Hosts

И нажимаю Save Changes

Настройки iPXE меню:

iPXE меню развертывания Debian 10 Server из Debian 10 DVD

 

Шаг №6: Создаю VM (выставляю первым грузится по сети) под гипервизором Debian 10 + Proxmox и выбираю созданное iPXE меню: Debian 10 NFS и спустя некое количество время получаю развернутую Debian 10 Buster Server amd64:

Установка Debian 10 Server через Fog Project успешна

Работает!!! Так у меня кстати всегда, сперва вникаю в поставленную задачу, получаю промежуточные результаты, а после дорабатываю до тех требований которые возникли в процессе эксплуатации. Уже на основе этой я смогу автоматизировать сетевую установку гипервизора Proxmox 6, а не как раньше если мне нужно переустановить/развернуть с нуля:

Итого заметка работоспособна. С уважением автор блога Олло Александр aka ekzorchik.