335 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			335 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
# .. vim: foldmarker=[[[,]]]:foldmethod=marker
 | 
						||
#
 | 
						||
## Note [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## This preseed file will :
 | 
						||
#	Use LVM partitioning.
 | 
						||
#	Format the root with BTRFS.
 | 
						||
#	Install Debian Buster/Stable.
 | 
						||
#	Call for a last script (to order log files, create btrfs subvolumes,…).
 | 
						||
#	Use the first device for system and boot. If you want to use another device,
 | 
						||
#	you must change :
 | 
						||
#	 partman-auto/disk
 | 
						||
#	 grub-installer/bootdev
 | 
						||
 | 
						||
 | 
						||
## ]]]
 | 
						||
## Howto use [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## With a PXE boot:
 | 
						||
#label BusterPreseed
 | 
						||
#    menu label Debian ^Buster 64 bits WITH PRESEED
 | 
						||
#    kernel installer/debian/buster/amd64/linux
 | 
						||
#    IPAPPEND 2
 | 
						||
#    APPEND vga=normal initrd=installer/debian/buster/amd64/initrd_firm.gz auto=true interface=auto netcfg/dhcp_timeout=60 netcfg/choose_interface=auto priority=critical preseed/url=tftp://WWW.XXX.YYY.ZZZ/installer/debian/buster/amd64/preseed.cfg
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Localization [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Install Time
 | 
						||
### Preseeding only locale sets language, country and locale.
 | 
						||
#d-i debian-installer/locale string en_US
 | 
						||
 | 
						||
## The values can also be preseeded individually for greater flexibility.
 | 
						||
d-i   debian-installer/language                   string      en
 | 
						||
d-i   debian-installer/country                    string      FR
 | 
						||
d-i   debian-installer/locale                     select      en_US.UTF-8
 | 
						||
d-i   debian-installer/fallbacklocale             select      en_US.UTF-8
 | 
						||
d-i   localechooser/supported-locales             multiselect fr_FR.UTF-8
 | 
						||
d-i   debian-installer/keymap                     string      fr-latin9
 | 
						||
 | 
						||
## Choose language
 | 
						||
d-i   localechooser/languagelist                  select      en
 | 
						||
 | 
						||
## Choose keyboard configuration
 | 
						||
d-i   console-tools/archs                         string      skip-config
 | 
						||
d-i   console-keymaps-at/keymap                   select      fr-latin9
 | 
						||
d-i   keyboard-configuration/xkb-keymap           select      French
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Network configuration [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Auto-configure networking
 | 
						||
d-i   netcfg/use_autoconfig                       boolean     true
 | 
						||
 | 
						||
# Disable that annoying WEP key dialog.
 | 
						||
d-i   netcfg/wireless_wep                         string
 | 
						||
 | 
						||
## To set a different link detection timeout (default is 3 seconds).
 | 
						||
## Values are interpreted as seconds.
 | 
						||
d-i   netcfg/link_detection_timeout               string      20
 | 
						||
d-i   netcfg/link_wait_timeout                    string      3
 | 
						||
 | 
						||
## If you have a slow dhcp server and the installer times out waiting for
 | 
						||
## it, this might be useful.
 | 
						||
d-i   netcfg/dhcp_timeout                         string      60
 | 
						||
d-i   netcfg/dhcpv6_timeout                       string      1
 | 
						||
 | 
						||
## Network Configuration
 | 
						||
d-i   netcfg/get_hostname                         string      unassigned-hostname
 | 
						||
d-i   netcfg/get_domain                           string      unassigned-domain
 | 
						||
 | 
						||
## If non-free firmware is needed for the network or other hardware, you can
 | 
						||
## configure the installer to always try to load it, without prompting. Or
 | 
						||
## change to false to disable asking.
 | 
						||
d-i   hw-detect/load_firmware                     boolean     true
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Remote install (Manual) [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Use the following settings if you wish to make use of the network-console
 | 
						||
## component for remote installation over SSH. This only makes sense if you
 | 
						||
## intend to perform the remainder of the installation manually.
 | 
						||
#d-i anna/choose_modules string network-console
 | 
						||
#d-i network-console/authorized_keys_url string http://10.0.0.1/openssh-key
 | 
						||
#d-i network-console/password password r00tme
 | 
						||
#d-i network-console/password-again password r00tme
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Mirror settings [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Mirror
 | 
						||
d-i   mirror/country                              string      FR
 | 
						||
d-i   mirror/http/hostname                        string      ftp.fr.debian.org
 | 
						||
d-i   mirror/http/directory                       string      /debian/
 | 
						||
d-i   mirror/http/proxy                           string
 | 
						||
d-i   mirror/http/mirror                          string      ftp.fr.debian.org
 | 
						||
d-i   mirror/suite                                string      buster
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Account [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Enable shadow passwords
 | 
						||
d-i   passwd/shadow                               boolean     true
 | 
						||
 | 
						||
## Allow login as root?
 | 
						||
d-i   passwd/root-login                           boolean     true
 | 
						||
 | 
						||
## Root password in clear text
 | 
						||
#d-i   passwd/root-password                        password    r00tme
 | 
						||
#d-i   passwd/root-password-again                  password    r00tme
 | 
						||
## ... or encrypted with {MD5, SHA512, …) hash
 | 
						||
d-i   passwd/root-password-crypted                password    $6$ceGTxMxc$gXajYByJna1cfTjaST3TcF0FfrlSAaEcmCiOMq/DBOuD0tlu8VYQosZPgwcFT4bCuODMErU/fgRxZEeu9c10V0
 | 
						||
 | 
						||
## Create a normal user account now?
 | 
						||
d-i   passwd/make-user                            boolean     false
 | 
						||
 | 
						||
## User name
 | 
						||
#d-i   passwd/user-fullname                        string      bob
 | 
						||
#d-i   passwd/username                             string      bob
 | 
						||
## User password in clear text
 | 
						||
#d-i   passwd/user-password                        password    insecure
 | 
						||
#d-i   passwd/user-password-again                  password    insecure
 | 
						||
## ... or encrypted with MD5 hash
 | 
						||
#d-i   passwd/user-password-crypted                password    $1$098f6bcd4621d373cade4e832627b4f6
 | 
						||
 | 
						||
## Set User UID
 | 
						||
#d-i   passwd/user-uid                             string      1000
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Clock and time zone setup [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Material clock on UTC
 | 
						||
d-i   clock-setup/utc                             boolean     true
 | 
						||
d-i   time/zone                                   string      Europe/Paris
 | 
						||
 | 
						||
## Use NTP to set time
 | 
						||
d-i   clock-setup/ntp                             boolean     true
 | 
						||
d-i   clock-setup/ntp-server                      string      0.fr.pool.ntp.org
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Disk Partitioning/Boot loader [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## If the system has only one disk the installer will default to using it.
 | 
						||
## Otherwise, the device name must be given
 | 
						||
d-i   partman-auto/disk                           string      /dev/nvme0n1 /dev/sda /dev/vda
 | 
						||
 | 
						||
## Specify the method to use
 | 
						||
### - regular: use the usual partition types for the architecture
 | 
						||
### - lvm: use LVM to partition the disk
 | 
						||
### - crypto: use LVM within an encrypted partition
 | 
						||
d-i   partman-auto/method                         string      lvm
 | 
						||
 | 
						||
## It's not ok to have /boot in the LVM
 | 
						||
d-i   partman-auto-lvm/no_boot                    boolean     false
 | 
						||
 | 
						||
## Remove old LVM configuration
 | 
						||
d-i   partman-lvm/device_remove_lvm               boolean     true
 | 
						||
d-i   partman-lvm/device_remove_lvm_span          boolean     true
 | 
						||
d-i   partman-auto/purge_lvm_from_device          boolean     true
 | 
						||
 | 
						||
## Remove old RAID configuration
 | 
						||
d-i   partman-md/device_remove_md                 boolean     true
 | 
						||
d-i   partman-md/confirm                          boolean     true
 | 
						||
 | 
						||
## Confirm to write the LVM partitions
 | 
						||
d-i   partman-lvm/confirm                         boolean     true
 | 
						||
d-i   partman-lvm/confirm_nooverwrite             boolean     true
 | 
						||
 | 
						||
## Volume Group/vg
 | 
						||
d-i   partman-auto-lvm/new_vg_name                string      srog10
 | 
						||
 | 
						||
### From stretch, need to specify the expected size
 | 
						||
d-i   partman-auto-lvm/guided_size                string      max
 | 
						||
 | 
						||
d-i   partman-auto/expert_recipe                  string      \
 | 
						||
      boot-root ::                                            \
 | 
						||
              200 200000 400 ext2                             \
 | 
						||
                      $primary{ } $bootable{ }                \
 | 
						||
                      method{ format } format{ }              \
 | 
						||
                      use_filesystem{ } filesystem{ ext2 }    \
 | 
						||
                      mountpoint{ /boot }                     \
 | 
						||
              .                                               \
 | 
						||
              16000 100000 80000 btrfs                        \
 | 
						||
                      $lvmok{ } lv_name{ lv_root }            \
 | 
						||
                      in_vg { srog10 }                        \
 | 
						||
                      $primary{ }                             \
 | 
						||
                      method{ format } format{ }              \
 | 
						||
                      use_filesystem{ } filesystem{ btrfs }   \
 | 
						||
                      mountpoint{ / }                         \
 | 
						||
              .                                               \
 | 
						||
              10000 50000 20000 ext4                          \
 | 
						||
                      $lvmok{ } lv_name{ lv_docker }          \
 | 
						||
                      in_vg { srog10 }                        \
 | 
						||
                      method{ format } format{ }              \
 | 
						||
                      use_filesystem{ } filesystem{ ext4 }    \
 | 
						||
                      mountpoint{ /var/lib/docker }           \
 | 
						||
              .                                               \
 | 
						||
              50% 2000 75% linux-swap                         \
 | 
						||
                      $lvmok{ } lv_name{ lv_swap }            \
 | 
						||
                      in_vg { srog10 }                        \
 | 
						||
                      $primary{ }                             \
 | 
						||
                      method{ swap } format{ }                \
 | 
						||
              .                                               \
 | 
						||
              100 100 -1 ext2                                 \
 | 
						||
                      $lvmok{ } lv_name{ lv_free }            \
 | 
						||
                      in_vg { srog10 }                        \
 | 
						||
                      $primary{ }                             \
 | 
						||
                      method{ format } format{ }              \
 | 
						||
                      use_filesystem{ } filesystem{ ext2 }    \
 | 
						||
                      mountpoint{ /mnt/free }                 \
 | 
						||
              .
 | 
						||
 | 
						||
## Return to menu if no mount point is assigned to a filesystem
 | 
						||
d-i   partman-basicfilesystems/no_mount_point     boolean     false
 | 
						||
 | 
						||
## Automatically partition without confirmation
 | 
						||
d-i   partman/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
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Kernel [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Kernel to install
 | 
						||
d-i   base-installer/kernel/image                 select      linux-image-amd64
 | 
						||
 | 
						||
## Drivers to include in the initrd
 | 
						||
d-i   base-installer/initramfs-tools/driver-policy select      most
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## APT configuration // Package selection [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Post install APT setup
 | 
						||
d-i   apt-setup/uri_type                          select      d-i
 | 
						||
d-i   apt-setup/hostname                          string      ftp.fr.debian.org
 | 
						||
d-i   apt-setup/directory                         string      /debian/
 | 
						||
d-i   apt-setup/another                           boolean     false
 | 
						||
d-i   apt-setup/security-updates                  boolean     false
 | 
						||
d-i   apt-setup/services-select                   multiselect security
 | 
						||
d-i   apt-setup/non-free                          boolean     true
 | 
						||
d-i   apt-setup/contrib                           boolean     true
 | 
						||
d-i   apt-setup/enable-source-repositories        boolean     true
 | 
						||
 | 
						||
## Ensure to use a network mirror
 | 
						||
### Set to false for an offline installation
 | 
						||
d-i   apt-setup/use_mirror                        boolean     true
 | 
						||
 | 
						||
## Choose packages
 | 
						||
tasksel tasksel/first                             multiselect ssh-server standard cinnamon-desktop
 | 
						||
 | 
						||
## Individual additional packages to install
 | 
						||
### tftp-hpa to download an archive (see preseed/late_command at the end of this file)
 | 
						||
d-i   pkgsel/include                              string      tftp-hpa
 | 
						||
 | 
						||
## Whether to upgrade packages after debootstrap.
 | 
						||
### Allowed values: none, safe-upgrade, full-upgrade
 | 
						||
d-i   pkgsel/upgrade                              select      full-upgrade
 | 
						||
 | 
						||
## Participate to Popularity Contest (disable for an unconnected server)
 | 
						||
d-i   popularity-contest/participate              boolean     true
 | 
						||
 | 
						||
## For CD/DVD case
 | 
						||
### Don't scan for additional CD/DVD
 | 
						||
d-i  apt-setup/cdrom/set-first                    boolean     false
 | 
						||
d-i  apt-setup/cdrom/set-double                   boolean     false
 | 
						||
d-i  apt-setup/cdrom/set-next                     boolean     false
 | 
						||
d-i  apt-setup/cdrom/set-failed                   boolean     false
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Boot loader [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Grub is the default boot loader (for x86). If you want lilo installed
 | 
						||
## instead, uncomment this:
 | 
						||
#d-i grub-installer/skip boolean true
 | 
						||
## To also skip installing lilo, and install no bootloader, uncomment this too:
 | 
						||
#d-i lilo-installer/skip boolean true
 | 
						||
 | 
						||
## This is fairly safe to set, it makes grub install automatically to the MBR
 | 
						||
## if no other operating system is detected on the machine.
 | 
						||
d-i   grub-installer/only_debian                  boolean     true
 | 
						||
 | 
						||
## This one makes grub-installer install to the MBR if it also finds some other
 | 
						||
## OS, which is less safe as it might not be able to boot that other OS.
 | 
						||
d-i   grub-installer/with_other_os                boolean     true
 | 
						||
 | 
						||
## Since Debian Jessie, the d-i will ask to specify the device for Grub.
 | 
						||
## Should use 'default', to use the default system disk
 | 
						||
###   Fix: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=759737
 | 
						||
d-i   grub-installer/bootdev                      string      /dev/sda
 | 
						||
 | 
						||
################################################################## ]]]
 | 
						||
## Finishing up the installation [[[
 | 
						||
######################################################################
 | 
						||
 | 
						||
## Avoid that last message about the install being complete.
 | 
						||
d-i   finish-install/reboot_in_progress           note
 | 
						||
d-i   prebaseconfig/reboot_in_progress            note
 | 
						||
 | 
						||
## This will prevent the installer from ejecting the CD during the reboot,
 | 
						||
## which is useful in some situations.
 | 
						||
d-i   cdrom-detect/eject                          boolean     false
 | 
						||
 | 
						||
## This is how to make the installer shutdown when finished, but not
 | 
						||
## reboot into the installed system.
 | 
						||
#d-i debian-installer/exit/halt boolean true
 | 
						||
 | 
						||
## This will power off the machine instead of just halting it.
 | 
						||
#d-i debian-installer/exit/poweroff boolean true
 | 
						||
 | 
						||
## Execute some last commands
 | 
						||
#in-target wget -O /tmp/latecommand.tar.gz "https://wiki.101010.fr/lib/exe/fetch.php?media=documentation:administration_systeme:latecommand.tar.gz" --no-check-certificate ; \
 | 
						||
d-i preseed/late_command string in-target umount /dev/srog10/lv_free ; \
 | 
						||
lvremove -f /dev/srog10/lv_free ; \
 | 
						||
wget -O /tmp/part.btrfs.sh "https://git.101010.fr/gardouille-dotfiles/scripts/raw/master/debian/part.btrfs.sh" ; \
 | 
						||
chmod +x /tmp/part.btrfs.sh && /tmp/part.btrfs.sh ; \
 | 
						||
in-target /bin/rmdir /mnt/free ; in-target /bin/sed -i '/lv_free/d' /etc/fstab ; \
 | 
						||
in-target /bin/sed -i 's/\(^\|^\#\)\(PermitRootLogin\).*/\2 yes/g' /etc/ssh/sshd_config ; \
 | 
						||
in-target wget -O /tmp/latecommand.tar.gz "https://git.ipr.univ-rennes1.fr/cellinfo/tftpboot/raw/master/scripts/latecommand.tar.gz" --no-check-certificate ; \
 | 
						||
in-target tar xzf /tmp/latecommand.tar.gz -C /tmp/ ; \
 | 
						||
in-target /bin/sh /tmp/latecommand/post.buster.sh
 | 
						||
################################################################## ]]]
 |