Сегодня я опубликую, как у меня производится установка, к примеру операционной системы Lubuntu 18.04 Desktop amd64 через сервис FOG Project + будет применен файл ответов на мастер установки lubuntu.seed и скрипт dproject который все также произведет базовую настройку системы на последующую работу. Очень удобно кстати, раз потратив время — за то после ручной труд более не нужен, только модернизация с учетом Ваших хотелок.

Если у Вас есть вопросы, то я как моим подписчикам платного помогу и покажу где у Вас затык и почему не работает.

Шаг №1: Самая первая заметка Как установить FOG на Ubuntu 18.04

Шаг №2: За основу берется заметка Меню загрузки Ubuntu 18.04 Server в FOG Management

Шаг №3: Предлагаю читателю свой файл ответов, через него устанавливается Lubuntu 18.04 Desktop amd64, как на физические компьютеры, ноутбуки так и на виртуальные системы гиперпизоров ESXi и Debian 10 + Proxmox 6:

ekzorchik@srv-fog:~$ sudo nano /var/www/fog/ubuntu/bionic/desktop/lubuntu.seed
#Install Ubuntu 18.04 Desktop + LVM + Script Configure
d-i auto-install/enable boolean true
d-i debconf/priority string critical
d-i pkgsel/update-policy select none
d-i debian-installer/locale string en_US
d-i debian-installer/language string en
d-i debian-installer/country string US
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/xkb-keymap select us
d-i keyboard-configuration/layoutcode string us
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string srv-dbionic
d-i mirror/country string manual
d-i mirror/http/hostname string us.archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string http://172.35.35.8:3142
d-i passwd/user-fullname string ekzorchik
d-i passwd/username string ekzorchik
d-i passwd/user-password password 712mbddr@
d-i passwd/user-password-again password 712mbddr@
d-i user-setup/allow-password-weak boolean true
d-i user-setup/encrypt-home boolean false
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Moscow
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string ru.pool.ntp.org
d-i partman-auto/init_automatically_partition select biggest_free
d-i partman-auto/disk string /dev/sda /dev/vda
d-i partman-auto/method string lvm
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-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
tasksel tasksel/first multiselect lubuntu-desktop openssh-server
d-i pkgsel/include string ca-certificates openssh-server
d-i pkgsel/upgrade select full-upgrade
d-i pkgsel/update-policy select unattended-upgrades
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i debian-installer/add-kernel-opts string net.ifnames=0
d-i finish-install/reboot_in_progress note
d-i preseed/late_command string in-target apt-install -y wget tmux mercurial vim lvm2 net-tools openssh-server gcc mail perl sshpass
d-i preseed/late_command string in-target wget --no-proxy http://172.35.35.7/fog/ubuntu/bionic/desktop/dproject -O /tmp/dproject.sh; in-target chmod +x /tmp/dproject.sh; in-target /bin/bash /tmp/dproject.sh;
ekzorchik@srv-fog:~$ sudo chown www-data:www-data /var/www/fog/

Шаг №4: В Файле ответов используется скрипт, как пример базовой настройки, он располагается там же где и файл ответов lubuntu.seed:

ekzorchik@srv-fog:~$ sudo nano /var/www/fog/ubuntu/bionic/desktop/dproject 
#!/bin/bash
# Codepage UTF-8
# aka Олло Александр aka ekzorchik (Telegram: @ekzorchik)
# for Ubuntu 18.04 Server amd64
#Это у меня в локальной сети сервис кеширующий любые устанавливаемые deb-пакеты чтобы не приходилось их раз за разом скачивать во время экспериментов.
function proxy {
cat > /etc/apt/apt.conf.d/02proxy << EOF
Acquire::http { Proxy "http://172.35.35.8:3142"; };
EOF
}
proxy
#for wget no use proxy
sed -i 's/#use_proxy = on/use_proxy = off/g' /etc/wgetrc
rm -Rf /var/lib/apt/lists
locklist="/var/lib/apt/lists/lock"
if [ -f $locklist ]
then
	echo "$locklist found i budet delete"
	rm -rf $locklist
else
	echo "$locklist not found"
fi
lockapt="/var/cache/apt/archives/lock"
if [ -f $lockapt ]
then
	echo "$lockapt found i budet delete"
	rm -rf $lockapt
else
	echo "$lockapt not found"
fi
lock="/var/lib/dpkg/lock"
lockfrontend="/var/lib/dpkg/lock-frontend"
lockbackup="/var/lib/dpkg/lock-backup"
if [ -f "$lock" ]
then
        echo "$lock found i budet delete"
        rm -rf $lock
        ls /var/lib/dpkg/lock
else
        echo "$lock not found."
fi
if [ -f "$lockfrontend" ]
then
        echo "$lockfrontend found i budet delete"
        rm -rf $lockfrontend
        ls /var/lib/dpkg/lock-frontend
else
        echo "$lockfrontend not found"
fi
if [ -f "$lockbackup" ]
then
        echo "$lockbackup found i budet delete"
        rm -rf $lockbackup
        ls /var/lib/dpkg/lock-backup
else
        echo "$lockbackup not found"
fi
apt-get update && sudo apt-get upgrade -y
rm -rf /var/lib/dpkg/updates/*
sed -i '/Prompt/s/lts/never/' /etc/update-manager/release-upgrades
dpkg --configure -a
#Timezone
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
apt-get autoremove -y
# Удаляю из системы пакет Cloud Init
sudo bash -c "echo 'datasource_list: [ None ]' sudo -s tee /etc/cloud/cloud.cfg.d/90_dpkg.cfg"
sudo apt purge -y cloud-init
sudo rm -Rf /etc/cloud /var/lib/cloud
#NTP
sudo apt-get install ntpdate mercurial bikeshed -y
sudo bash -c "echo '@reboot /usr/sbin/ntpdate -s 0.pool.ntp.org > /dev/null'" | sudo -s tee /var/spool/cron/crontabs/root
ntpdate -s 0.pool.ntp.org
#Install nuznoe in work
apt-get install htop mc software-properties-common -y
purge-old-kernels --keep 1 -y
#locale
#sudo locale-gen ru_RU
#sudo locale-gen ru_RU.UTF-8
sudo locale-gen en_US.UTF-8
sudo sed -i 's/^# *\(en_US.UTF-8\)/\1/' /etc/locale.gen && sudo locale-gen
#sudo sed -i 's/ru_RU.KOI8-R/ru_RU.UTF-8/g' /etc/locale.alias
echo "LC_ALL="en_US.UTF-8"" | sudo -s tee /etc/default/locale
echo "LANG="en_US.UTF-8"" | sudo tee -a /etc/default/locale
echo "LANGUAGE="en.US.UTF-8"" | sudo tee -a /etc/default/locale
ekzorchik@srv-fog:~$ sudo chown www-data:www-data /var/www/fog/

Шаг №5: Мое iPXE меню "Lubuntu 18.04 Desktop amd64" выбора установки по сети операционной системы:

http://172.35.35.7/fog/management/ - Username: fog, Password: 712mbddr@, Language: English и нажимаю Login - FOG Configuration - iPXE New Menu Entry

  • Menu item: Lubuntu 18.04 Desktop amd64
  • Description: Lubuntu 18.04 Desktop amd64
  • Parameters: kernel tftp://${fog-ip}/os/ubuntu/desktop/18.04/linux
    initrd tftp://${fog-ip}/os/ubuntu/desktop/18.04/initrd.gz
    imgargs linux initrd=initrd.gz root=/dev/nfs netboot=nfs nfsroot=${fog-ip}:/images/os/ubuntu/desktop/18.04/ locale=en_US.UTF-8 keyboard-configuration/layoutcode=us hostname=srv-dbionic localechooser/supported-locales=en_US.UTF-8 url=http://172.35.35.7/fog/ubuntu/bionic/desktop/lubuntu.seed quiet splash ip=dhcp rw
    boot || goto MENU
  • Menu Show with: All Hosts

и нажимаю "Save Changes"

Шаг №6: Теперь на ноутбуке, к примеру Sony Vaio Model PCG-5K3P через F2 в BIOS Активирую загрузку по сети:

Advanced — Network Boot — Enabled

Boot — Boot priority order: поднимаю Network в самый верх, выделив Network и нажимая сочетание клавиш «Правый Shift» + «+»

после Сохраняю изменения проделанные в BIOS по клавишу F10 — Yes

Когда ноутбук снова перезагрузится, загрузка инициализируется по сети и в меню iPXE нужно будет выбрать созданное меню установки "Lubuntu 18.04 Desktop amd64" и спустя n’ое количество времени установка операционной системы будет произведена.

Дальше вы уже сами настраиваете систему как Вам нужно или дорабатываете скрипт выше.

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