Рейтинг:6

Предварительная установка Debian 11 полностью в автоматическом режиме (избавьтесь от вопросов)

флаг cn

Я пытаюсь полностью автоматизировать установку 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; \

РЕШЕНО!

Рейтинг:4
флаг cn

Я нашел способ сделать это! Благодаря этот пост о противоположной проблеме

Я только что добавил два параметра в строку загрузки в grub.cfg.

netcfg/get_hostname=установить netcfg/get_domain=установить

Теперь он полностью автоматизирован и не задает никаких вопросов.

anx avatar
флаг fr
anx
Будет стыдно, если кто-то *наконец* добавил список необходимых параметров в [примечания к выпуску](https://www.debian.org/releases/bullseye/amd64/ch05s03.de.html), прежде чем другие инструменты d-i поддержка теряется из-за менее переносимых подходов, таких как *subiquity*.
proxyd43 avatar
флаг cn
Разве subiquity не для Ubuntu?
anx avatar
флаг fr
anx
Ага.Теперь у нас есть две системы, такие же сломанные, как и раньше, так же плохо документированные, как и раньше, но, по крайней мере, усилия по исправлению дублируются между вселенной Ubuntu и другими дистрибутивами, производными от Debian.
proxyd43 avatar
флаг cn
Вы абсолютно правы! Честно говоря, мне было трудно правильно настроить pxe. На работе мне нужно развернуть Ubuntu 20.04 в качестве рабочих станций, а смесь autoinstall/d-i/subiquity — это полный беспорядок. Это [обсуждение] (https://discourse.ubuntu.com/t/please-test-autoinstalls-for-20-04/15250/220) полно разочарованных администраторов, и я согласен.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.