Автоустановка debian с помощью preseed файла. en
Во время загрузки надо выбрать Advanced options
[Скрин 1][1]
Затем выбрать Automated install
[Скрин 2][2]
В появившемся поле надо ввести ресурс где находится автоконфиг auto.loc
[Скрин 3][3]
Рабочий конфиг используемый на auto.loc
#### Contents of the preconfiguration file (for bullseye)
### Localization
d-i debian-installer/language string en
d-i debian-installer/country string RU
d-i debian-installer/locale string en_GB.UTF-8
d-i localechooser/supported-locales multiselect en_US.UTF-8, ru_RU.UTF-8
# Keyboard selection.
d-i keyboard-configuration/xkb-keymap select us
### Network configuration
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string debianhost
d-i hw-detect/load_firmware boolean true
### Mirror settings
# If you select ftp, the mirror/country string does not need to be set.
#d-i mirror/protocol string ftp
d-i mirror/country string manual
d-i mirror/http/hostname string mirror.yandex.ru
d-i mirror/http/directory string /debian
d-i mirror/http/proxy string http://10.0.0.10:8118/
### Account setup
# Skip creation of a root account (normal user account will be able to use sudo).
d-i passwd/root-login boolean false
d-i passwd/make-user boolean true
d-i passwd/user-fullname string Ansible user
d-i passwd/username string ansible
#d-i passwd/user-password password fuckyou
#d-i passwd/user-password-again password fuckyou
d-i passwd/user-password-crypted password $6UI.......................lIOop1
d-i passwd/user-uid string 1000
### Clock and time zone setup
d-i clock-setup/utc boolean true
d-i time/zone string Europe/Moscow
# Controls whether to use NTP to set the clock during the install
d-i clock-setup/ntp boolean true
# NTP server to use. The default is almost always fine here.
d-i clock-setup/ntp-server string pool.ntp.org
#### Partitioning
### Partitioning example
#
## You can define the amount of space that will be used for the LVM volume
## group. It can either be a size with its unit (eg. 20 GB), a percentage of
## free space or the 'max' keyword.
d-i partman-auto-lvm/new_vg_name string sys
d-i partman-auto-lvm/guided_size string max
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-lvm/confirm_nooverwrite 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
# Partitioning
# this only makes partman automatically partition without confirmation:
d-i partman-partitionining/confirm_write_new_label boolean true
d-i partman-md/confirm_nooverwrite boolean true
d-i mdadm/boot_degraded boolean true
# Partitioning
d-i partman-auto/method string raid
d-i partman-auto/disk string /dev/sda /dev/sdb
d-i partman-auto/expert_recipe string multiraid :: \
100 10 100 raid $primary{ } $lvmignore{ } method{ raid } .\
512 20 512 raid $primary{ } $lvmignore{ } method{ raid } .\
900 25 -1 raid $primary{ } $lvmignore{ } method{ raid } . \
30000 50 -1 btrfs $defaultignore{ } $lvmok{ } lv_name{ root } method{ format } format{ } use_filesystem{ } filesystem{ btrfs } mountpoint{ / } . \
50000 50 -1 ext4 $defaultignore{ } $lvmok{ } lv_name{ home } method{ format } format{ } use_filesystem{ } filesystem{ ext4 } mountpoint{ /home } . \
10000 50 -1 ext4 $defaultignore{ } $lvmok{ } lv_name{ tmp } method{ format } format{ } use_filesystem{ } filesystem{ ext4 } mountpoint{ /tmp } . \
100000 50 -1 ext4 $defaultignore{ } $lvmok{ } lv_name{ var } method{ format } format{ } use_filesystem{ } filesystem{ xfs } mountpoint{ /var } .
#
#2000 50 -1 btrfs $defaultignore{ } \
# $lvmok{ } \
# lv_name{ root } \
# method{ format } \
# format{ } \
# use_filesystem{ } \
# filesystem{ btrfs } \
# mountpoint{ / } \
# options/discard{ discard } \
# options/relatime{ relatime } \
# options/ssd{ ssd }. \
#
# specify how the previously defined partitions will be
# used in the RAID setup.
d-i partman-auto-raid/recipe string \
1 2 0 fat32 /boot/efi /dev/sda1#/dev/sdb1 . \
1 2 0 ext4 /boot /dev/sda2#/dev/sdb2 . \
1 2 0 lvm - /dev/sda3#/dev/sdb3 .
#1 2 0 btrfs / /dev/sda3#/dev/sdb3 .
# This makes partman automatically partition without confirmation.
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
d-i partman-basicfilesystems/no_swap boolean false
## Controlling how partitions are mounted
d-i partman/mount_style select label
### Apt setup
# You can choose to install non-free and contrib software.
d-i apt-setup/non-free boolean true
d-i apt-setup/contrib boolean true
### Package selection
tasksel tasksel/first multiselect
tasksel/skip-tasks multiselect server
# Individual additional packages to install
d-i pkgsel/include string openssh-server build-essential openssh-server python-apt
### Boot loader installation
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean true
d-i grub-pc/install_devices multiselect /dev/sda, /dev/sdb
d-i grub-installer/bootdev string /dev/sda /dev/sdb
d-i finish-install/reboot_in_progress note
popularity-contest popularity-contest/participate boolean false
#### Advanced options
### Running custom commands during the installation
d-i preseed/late_command string apt-install zsh; \
in-target /bin/sh -c "echo 'dummy' >> /etc/modules"; \
in-target mkdir -p /home/ansible/.ssh; \
in-target /bin/sh -c "echo 'ssh-rsa AAAAB3Nz..................pOUle0YhKxJ Ansible user' >> /home/ansible/.ssh/authorized_keys"; \
in-target /bin/sh -c "echo 'ansible ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers"; \
in-target chown -R ansible:ansible /home/ansible; \
in-target chmod -R 600 /home/ansible/authorized_keys; \
in-target sh -c 'eject || true';
d-i debian-installer/splash boolean false
d-i cdrom-detect/eject boolean true
### Shutdown machine
d-i finish-install/reboot_in_progress note
d-i debian-installer/exit/halt boolean false
d-i debian-installer/exit/poweroff boolean false
Links
- auto.loc
- [Скрин 1][1]
- [Скрин 2][2]
- [Скрин 3][3]
[1]:{{ site.url }}/images/preseed/preseed-01.png [2]:{{ site.url }}/images/preseed/preseed-02.png [3]:{{ site.url }}/images/preseed/preseed-03.png