Я пытаюсь полностью автоматизировать установку Debian 11 netinstall.
Я прочитал много документации здесь:
Вот моя загрузочная строка (из grub.cfg)
установить по умолчанию = "автоустановка"
установить время ожидания = 3
пункт меню «Debian 11 Полностью автоматизированный UEFI LVM LUKS BTRFS Remote Decrypt DEBUG TTY4» --id autoinstall {
установить background_color = черный
linux /debian-installer/amd64/linux auto=true url=tftp://192.168.1.100/preseed/debseed11_crypt.cfg net.ifnames=0 biosdevname=0 ipv6.disable=1 язык=en locale=en_US.UTF-8 keymap=fr vga=788 noprompt DEBCONF_DEBUG=5 --- тихо
initrd /debian-installer/amd64/initrd.gz
}
Вот мой предустановленный файл:
#### Предустановленный файл предварительной конфигурации (для Debian buster)
### Ранняя команда Партмана
### Параметр ядра
#d-i debian-installer/add-kernel-opts string net.ifnames=0 biosdevname=0 hostname=unassigned-hostname domain=unassigned-domain
#d-i debconf/приоритет критичен
#d-i строка debian-installer/add-kernel-opts net.ifnames=0 biosdevname=0 console=ttyS0,19200n8
### Локализация
d-i debian-installer/locale строка en_US
d-i debian-installer/language string en
d-i debian-installer/country string США
#d-i debian-installer/locale строка en_US.UTF-8 fr_FR.UTF-8
d-i localechooser/supported-locales multiselect en_US.UTF-8, fr_FR.UTF-8
### Выбор клавиатуры
d-i keyboard-configuration/xkb-keymap выберите fr
### Конфигурация сети
# Netcfg выбирает интерфейс, который можно подключить. Села эмпечера
# # d'afficher une liste s'il y plusieurs interfaces.
d-i netcfg/choose_interface выбрать авто
#d-i netcfg/choose_interface выберите eth0
d-i netcfg/use_dhcp строка истина
d-i netcfg/link_wait_timeout строка 10
d-i netcfg/dhcp_timeout строка 60
#d-i netcfg/disable_autoconfig логическое значение true
d-i netcfg/dhcp_failed примечание
#d-i netcfg/dhcp_options выбрать авто
#Настроить сеть вручную
# Статическая конфигурация сети IPv4
#d-i netcfg/get_ipaddress строка 192.168.1.120
#d-i netcfg/get_netmask строка 255.255.255.0
#d-i netcfg/get_gateway строка 192.168.1.1
#d-i netcfg/get_nameservers строка 192.168.1.1
#d-i netcfg/confirm_static логическое значение true
# Установить имя хоста
#d-i netcfg/get_hostname строка zhurong
#d-i netcfg/get_domain строка планета.марс
# Принудительное имя хоста
#d-i netcfg/hostname string zhurong.planet.mars
# Отключите этот надоедливый диалог с ключом WEP
d-i строка netcfg/wireless_wep
d-i netcfg/get_hostname неназначенное-имя-хоста
d-i netcfg/get_domain неназначенный-домен
d-i netcfg/get_hostname верно
d-i netcfg/get_domain видно верно
### Настройки зеркала
d-i зеркало/струна кантри руководство
d-i зеркало/http/имя хоста строка httpredir.debian.org
d-i зеркало/http/директория строка /debian
d-i зеркало/http/прокси строка
### Настройка учетной записи
# Пропустить создание обычной учетной записи пользователя
d-i passwd/make-user boolean false
# Установить пароль root
# или зашифрован с помощью хэша crypt(3).
d-i passwd/root-password-crypted password $6$47Cx5oMpkh66eYNI$LV76xupgkvZ3rHJCq1NgXKzp3bBDv6g0FmMiSvmUp1jqaIkTEz5F6eA.SRhBzyPReVQEnzZWwFWSdKGBBn.tE1
### Настройка часов и часового пояса
# Установить аппаратные часы в UTC
d-i clock-setup/utc boolean true
# Установить часовой пояс
d-i строка времени/зоны Европа/Париж
# Использовать часы NTP во время установки
d-i clock-setup/ntp boolean true
### Разделение
# Метод LVM LUKS
# Запретить partman заполнять диск случайными данными
d-i partman-auto-crypto/erase_disks логическое значение false
#d-i partman/early_command \
# строка dd if=/dev/zero of=/dev/sda bs=512 count=1
d-i partman-auto/method string crypto
d-i partman-lvm/device_remove_lvm логическое значение true
d-i partman-md/device_remove_md логическое значение true
d-i partman-lvm/подтвердить логическое значение true
d-i partman-auto-lvm/guided_size строка макс.
d-i partman-auto-lvm/new_vg_name строка debian
d-i partman-auto/дисковая строка /dev/vda
d-i partman-auto/choose_recipe выберите boot-crypto
d-i partman-crypto/passphrase пароль aaabbbccc
d-i partman-crypto/passphrase-again пароль aaabbbccc
d-i partman-auto/expert_recipe строка \
загрузочный крипто :: \
1024 1024 1024 доб4 \
$ первичный { } $ загрузочный { } \
метод{ формат } формат{ } \
use_filesystem{ } файловая система{ ext4 } \
точка монтирования {/boot} \
. \
8192 8192 8192 Linux-своп \
$lvmok{ } lv_name{ своп } \
in_vg { дебиан } \
метод{ подкачка } формат{ } \
. \
80896 80896 1000000 бтрфс \
$lvmok{ } lv_name{ корень } \
in_vg { дебиан } \
метод{ формат } формат{ } \
use_filesystem{ } файловая система{btrfs} \
точка крепления{ / } \
. \
#d-i partman-basicfilesystems/no_mount_point логическое значение false
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition выбрать закончить
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite логическое значение true
d-i partman-md/подтвердить логическое значение true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition выбрать закончить
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite логическое значение true
### Правильная установка
d-i apt-setup/cdrom/set-first логическое значение false
d-i apt-setup/cdrom/set-next логическое значение false
d-i apt-setup/cdrom/set-failed boolean false
d-i apt-setup/services-select multiselect безопасность, обновления
d-i apt-setup/security_host строка security.debian.org
### Выбор пакета
tasksel tasksel/first multiselect стандарт
# Отдельные дополнительные пакеты для установки
d-i pkgsel/include string openssh-server vim tmux tcpdump dropbear-initramfs cryptsetup-initramfs python3.9
d-i pkgsel/upgrade выберите полное обновление
d-i pkgsel/update-policy выбрать нет
d-i pkgsel/updatedb логическое значение true
популярность-конкурс популярность-конкурс/участвовать логическое значение false
### ГРАБ МАТЕРИАЛ
d-i grub-installer/only_debian логическое значение true
d-i grub-installer/bootdev строка по умолчанию
# Примечание: параметры, переданные программе установки, будут добавлены автоматически.
#d-i debian-installer/add-kernel-opts строка nousb
# Необязательный пароль для grub, либо открытым текстом
# #d-i grub-installer/пароль пароль r00tme
# #d-i grub-installer/пароль-снова пароль r00tme
# # или зашифрованы с помощью хэша MD5, см. grub-md5-crypt(8).
# #d-i grub-installer/password-crypted password [MD5 hash]
#
# # Используйте следующую опцию, чтобы добавить дополнительные параметры загрузки для
# # установленная система (если поддерживается установщиком загрузчика).
# # Примечание: параметры, переданные программе установки, будут добавлены автоматически.
# #d-i debian-installer/add-kernel-opts строка nousb
#
# ### Завершение установки
# # Избегайте этого последнего сообщения о завершении установки.
d-i примечание о завершении установки/перезагрузки_в_прогрессе
d-i preseed/late_command строка \
mkdir -p -m 700 /target/root/.ssh; \
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJEe3gF//znGIzq30frI6O9qDn5eM6uqEZZlx7mR5SiS" > /target/root/.ssh/authorized_keys; \
in-target chown --recursive root:root /root/.ssh; \
целевой chmod 0644 /root/.ssh/authorized_keys; \
in-target update-alternatives --set editor /usr/bin/vim.basic; \
in-target passwd --expire root; \
целевое эхо 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJEe3gF//znGIzq30frI6O9qDn5eM6uqEZZlx7mR5SiS' > /etc/dropbear-initramfs/authorized_keys; \
in-target sed -i '/*PasswordAuthentication*/c\PasswordAuthentication no' /etc/ssh/sshd_config; \
in-target sed -i '/*PasswordAuthentication*/c\PasswordAuthentication no' /etc/ssh/sshd_config; \
in-target systemctl enable --now sshd; \
in-target sed -i '/*DROPBEAR_OPTIONS=*/c\DROPBEAR_OPTIONS="-I 300 -j -k -p 22 -s -c /bin/cryptroot-unlock "' /etc/dropbear-initramfs/config; \
in-target sed -i '/*IP=*/c\IP="dhcp"' /etc/initramfs-tools/initramfs.conf; \
целевое обновление-initramfs -u;
#
На данный момент я получил установщик debien, запрашивающий у меня:
Я просто пытаюсь избавиться от этих вопросов. Вот что я пробовал:
- Я попытался поиграть с приоритетом = критический в параметрах ядра командной строки на сервере pxe.
- я настроил свой сервер dhcpd для управления именем домена имени этого конкретного хоста.
хозяйское любопытство {
аппаратный Ethernet 12:34:45:12:34:56;
фиксированный адрес 192.168.1.90;
опция имя хоста "любопытство";
вариант доменного имени "planet.mars";
}
Я знаю, что могу настроить переменные имени хоста/домена, и все будет в порядке, но я хочу сделать очень универсальный preseed для развертывания на нескольких серверах.
Некоторая помощь или подсказки будут очень признательны.
Заранее спасибо.
РЕДАКТИРОВАТЬ: Решено:
Кстати, первый preseed не был идеальным. Если кому-то интересно, вот лучше.
Полностью автоматизированный Debian 11 UEFI LUKS BTRFS Remote Decrypt через ssh DEBUG TTY4
#### Предустановленный файл предварительной конфигурации (для Debian Bullseye)
# Debian 11 Полностью автоматизированная UEFI LVM LUKS BTRFS Удаленная расшифровка через ssh DEBUG # TTY4
### Ранняя команда Партмана
### Параметр ядра
#d-i debian-installer/add-kernel-opts string net.ifnames=0 biosdevname=0 hostname=unassigned-hostname domain=unassigned-domain
#d-i debconf/приоритет критичен
#d-i строка debian-installer/add-kernel-opts net.ifnames=0 biosdevname=0 console=ttyS0,19200n8
### Локализация
d-i debian-installer/locale строка en_US
d-i debian-installer/language string en
d-i debian-installer/country string США
#d-i debian-installer/locale строка en_US.UTF-8 fr_FR.UTF-8
d-i localechooser/supported-locales multiselect en_US.UTF-8, fr_FR.UTF-8
### Выбор клавиатуры
d-i keyboard-configuration/xkb-keymap выберите fr
### Конфигурация сети
# Netcfg выбирает интерфейс, который можно подключить. Села эмпечера
# # d'afficher une liste s'il y plusieurs interfaces.
d-i netcfg/choose_interface выбрать авто
#d-i netcfg/choose_interface выберите eth0
d-i netcfg/use_dhcp строка истина
d-i netcfg/link_wait_timeout строка 10
d-i netcfg/dhcp_timeout строка 60
#d-i netcfg/disable_autoconfig логическое значение true
d-i netcfg/dhcp_failed примечание
#d-i netcfg/dhcp_options выбрать авто
#Настроить сеть вручную
# Статическая конфигурация сети IPv4
#d-i netcfg/get_ipaddress строка 192.168.1.120
#d-i netcfg/get_netmask строка 255.255.255.0
#d-i netcfg/get_gateway строка 192.168.1.1
#d-i netcfg/get_nameservers строка 192.168.1.1
#d-i netcfg/confirm_static логическое значение true
# Установить имя хоста
#d-i netcfg/get_hostname строка zhurong
#d-i netcfg/get_domain строка планета.марс
# Принудительное имя хоста
#d-i netcfg/hostname string zhurong.planet.mars
# Отключите этот надоедливый диалог с ключом WEP
d-i строка netcfg/wireless_wep
#d-i netcfg/get_hostname=установить
d-i netcfg/get_hostname неназначенное-имя-хоста
d-i netcfg/get_domain неназначенный-домен
d-i netcfg/get_hostname верно
d-i netcfg/get_domain видно верно
### Настройки зеркала
d-i зеркало/струна кантри руководство
d-i зеркало/http/имя хоста строка httpredir.debian.org
d-i зеркало/http/директория строка /debian
d-i зеркало/http/прокси строка
### Настройка учетной записи
# Пропустить создание обычной учетной записи пользователя
d-i passwd/make-user boolean false
# Установить пароль root
# или зашифрован с помощью хэша crypt(3).
d-i passwd/root-password-crypted password $6$47Cx5oMpkh999YNI$XG76xupgkvZ3rHJCq1NgXKzp3bBfIuj0FmMiSvmUp1jqaIkTEz5F6eA.SRhBzyPReVQEnzZWwFWSdYGCBn.tE1
### Настройка часов и часового пояса
# Установить аппаратные часы в UTC
d-i clock-setup/utc boolean true
# Установить часовой пояс
d-i строка времени/зоны Европа/Париж
# Использовать часы NTP во время установки
d-i clock-setup/ntp boolean true
### Разделение
# Метод LVM LUKS
# Запретить partman заполнять диск случайными данными
d-i partman-auto-crypto/erase_disks логическое значение false
#d-i partman/early_command \
# строка dd if=/dev/zero of=/dev/sda bs=512 count=1
# Принудительная загрузка UEFI ("совместимость с BIOS" будет потеряна). По умолчанию: ложь.
d-i partman-efi/non_efi_system логическое значение false
# Убедитесь, что таблица разделов GPT — это необходимо для EFI
d-i partman-partitioning/choose_label строка gpt
d-i partman-partitioning/default_label строка gpt
d-i partman-auto/method string crypto
d-i partman-lvm/device_remove_lvm логическое значение true
d-i partman-md/device_remove_md логическое значение true
d-i partman-lvm/подтвердить логическое значение true
d-i partman-auto-lvm/guided_size строка макс.
d-i partman-auto-lvm/new_vg_name строка debian
d-i partman-auto/disk строка /dev/sda
d-i partman-auto/choose_recipe выберите boot-crypto
d-i partman-crypto/passphrase пароль aabbcc
d-i partman-crypto/passphrase-again пароль aabbcc
d-i partman-auto/expert_recipe строка \
загрузочный крипто :: \
512 50 512 жир32 \
$ первичный { } $ загрузочный { } \
метод { efi } формат { } \
точка монтирования {/boot/efi} \
. \
1024 1024 1024 доб4 \
$ первичный { } $ загрузочный { } \
метод{ формат } формат{ } \
use_filesystem{ } файловая система{ ext4 } \
точка монтирования {/boot} \
. \
8192 8192 8192 Linux-своп \
$lvmok{ } lv_name{ своп } \
in_vg { дебиан } \
метод{ подкачка } формат{ } \
. \
80896 80896 1000000 бтрфс \
$lvmok{ } lv_name{ корень } \
in_vg { дебиан } \
метод{ формат } формат{ } \
use_filesystem{ } файловая система{btrfs} \
точка крепления{ / } \
. \
#d-i partman-basicfilesystems/no_mount_point логическое значение false
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition выбрать закончить
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite логическое значение true
d-i partman-md/подтвердить логическое значение true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition выбрать закончить
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite логическое значение true
### Правильная установка
d-i apt-setup/cdrom/set-first логическое значение false
d-i apt-setup/cdrom/set-next логическое значение false
d-i apt-setup/cdrom/set-failed boolean false
d-i apt-setup/services-select multiselect безопасность, обновления
d-i apt-setup/security_host строка security.debian.org
### Выбор пакета
tasksel tasksel/first multiselect стандарт
# Отдельные дополнительные пакеты для установки
d-i pkgsel/include string openssh-server vim tmux tcpdump dropbear-initramfs cryptsetup-initramfs python3.9
d-i pkgsel/upgrade выберите полное обновление
d-i pkgsel/update-policy выбрать нет
d-i pkgsel/updatedb логическое значение true
популярность-конкурс популярность-конкурс/участвовать логическое значение false
### ГРАБ МАТЕРИАЛ
d-i grub-installer/only_debian логическое значение true
d-i grub-installer/bootdev строка по умолчанию
# Примечание: параметры, переданные программе установки, будут добавлены автоматически.
#d-i debian-installer/add-kernel-opts строка nousb
# Необязательный пароль для grub, либо открытым текстом
# #d-i grub-installer/пароль пароль r00tme
# #d-i grub-installer/пароль-снова пароль r00tme
# # или зашифрованы с помощью хэша MD5, см. grub-md5-crypt(8).
# #d-i grub-installer/password-crypted password [MD5 hash]
#
# # Используйте следующую опцию, чтобы добавить дополнительные параметры загрузки для
# # установленная система (если поддерживается установщиком загрузчика).
# # Примечание: параметры, переданные программе установки, будут добавлены автоматически.
# #d-i debian-installer/add-kernel-opts строка nousb
#
# ### Завершение установки
# # Избегайте этого последнего сообщения о завершении установки.
d-i примечание о завершении установки/перезагрузки_в_прогрессе
d-i preseed/late_command строка \
mkdir -p -m 700 /target/root/.ssh; \
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJEe3gF//znGIzq30frI6O9qDn5eM6uqEZZlx7mR5SiS" > /target/root/.ssh/authorized_keys; \
in-target chown --recursive root:root /root/.ssh; \
целевой chmod 0644 /root/.ssh/authorized_keys; \
in-target update-alternatives --set editor /usr/bin/vim.basic; \
d-i preseed/late_command строка \
mkdir -p -m 700 /target/root/.ssh; \
echo "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJEe3gF//znGIzq30frI6O9qDn5eM6uqEZZlx7mR5SiS" > /target/root/.ssh/authorized_keys; \
in-target chown --recursive root:root /root/.ssh; \
целевой chmod 0644 /root/.ssh/authorized_keys; \
in-target update-alternatives --set editor /usr/bin/vim.basic; \
echo 'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJEe3gF//znGIzq30frI6O9qDn5eM6uqEZZlx7mR5SiS' > /target/etc/dropbear-initramfs/authorized_keys; \
echo 'Номер аутентификации пароля' >> /target/etc/ssh/sshd_config.d/setup; \
echo 'PermitRootLogin запрещающий пароль' >> /etc/ssh/sshd_config.d/setup; \
echo 'auto eno1' >> /target/etc/network/interfaces; \
sed -i 's/eth0/eno1/g' /target/etc/network/interfaces; \
in-target systemctl enable --now sshd; \
echo 'DROPBEAR_OPTIONS="-I 300 -j -k -p 22 -s -c /bin/cryptroot-unlock"' >> /target/etc/dropbear-initramfs/config; \
echo 'IP="dhcp"' >> /target/etc/initramfs-tools/initramfs.conf; \
целевое обновление-initramfs -u;
# in-target passwd --expire root; \
РЕШЕНО!