# Preseed file for automated Debian installation # Locale settings d-i debian-installer/locale string en_US.UTF-8 d-i console-setup/ask_detect boolean false d-i keyboard-configuration/xkb-keymap select us # Clock and time zone setup d-i clock-setup/utc boolean true d-i time/zone string America/Los_Angeles d-i clock-setup/ntp boolean true # Skip asking to scan additional CDs d-i apt-setup/cdrom/set-first boolean false d-i apt-setup/cdrom/set-failed boolean false d-i apt-setup/cdrom/set-next boolean false d-i cdrom-detect/eject boolean false # Network configuration d-i netcfg/disable_dhcp6 boolean true d-i netcfg/dhcp6_timeout string 1 d-i netcfg/choose_interface select auto d-i netcfg/get_hostname string cosmos-usb d-i netcfg/get_domain string home.cosmos # Mirror settings d-i mirror/country string manual d-i mirror/http/hostname string deb.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string d-i mirror/codename string trixie # Account setup d-i passwd/root-password-crypted password {{ cosmos_root_password | password_hash('sha512') }} d-i passwd/make-user boolean true d-i passwd/user-fullname string Cosmos User d-i passwd/username string cosmos d-i passwd/user-password-crypted password {{ cosmos_password | password_hash('sha512') }} # Partitioning - Regular working # This does standard partitioning i.e. not LVM # d-i partman-auto/method string regular # Obviously this selects the disk d-i partman-auto/disk select auto # /dev/sda # The atomic recipe creates a very simple partitioning scheme with just a single root partition and swap space. d-i partman-auto/choose_recipe select atomic # this top one is the magic one that made the prompt go away; huzzah # This line tells the installer to finalize the partitioning setup. # By selecting finish, you indicate that you have completed the partitioning and # the installer should proceed to format the partitions and continue with the installation. # It's part of the process to automate the steps without manual confirmation d-i partman/choose_partition select finish # This setting automatically confirms the partitioning changes, # allowing the installer to proceed without asking for user confirmation. # Setting this to true is important for fully automated installations, # as it avoids stopping the installation process to ask if you want to write the changes to disk. d-i partman/confirm boolean true # This line automatically confirms overwriting existing partitions on the disk. # By setting this to true, the installer will overwrite any existing data # on the specified disk without prompting for user confirmation. # This is useful for fully automated installations where you want to ensure that old data is removed. d-i partman/confirm_nooverwrite boolean true # Grub installation d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean false # Opt out of the popularity contest survey popularity-contest popularity-contest/participate boolean false # Package selection tasksel tasksel/first multiselect standard, ssh-server d-i pkgsel/include string openssh-server curl openvpn net-tools resolvconf htop d-i pkgsel/upgrade select none d-i preseed/late_command string \ mkdir -p /target/root/.ssh; \ mkdir -p /target/root/.config/htop; \ mkdir -p /target/etc/openvpn/client; \ mkdir -p /target/opt/cosmos/init; \ cp /cdrom/cosmos/cosmos-init.tar /target/opt/cosmos/cosmos-init.tar; \ in-target tar -xf /opt/cosmos/cosmos-init.tar -C /opt/cosmos; \ cp /target/opt/cosmos/init/jenkins_key.pub /target/root/.ssh/authorized_keys; \ cp /target/opt/cosmos/init/update_issue.sh /target/root/update_issue.sh; \ cp /target/opt/cosmos/init/update_issue.service /target/etc/systemd/system/update_issue.service; \ cp /target/opt/cosmos/init/.bashrc /target/root/.bashrc; \ cp /target/opt/cosmos/init/htoprc /target/root/.config/htop/htoprc; \ cp /target/opt/cosmos/init/stat.sh /target/root/stat.sh; \ cp /target/opt/cosmos/init/cosmos-client.ovpn /target/etc/openvpn/client/cosmos-client.conf; \ cp /target/opt/cosmos/init/00-update-issue.conf /target/etc/cron.d/update-issue; \ cp /target/opt/cosmos/init/00-root-allow.conf /target/etc/ssh/sshd_config.d/00-root-allow.conf; \ in-target chmod +x /root/update_issue.sh; \ in-target chmod +x /root/stat.sh; \ in-target systemctl enable update_issue.service; \ in-target systemctl enable openvpn-client@cosmos-client # Reboot after installation d-i finish-install/reboot_in_progress note # Shutdown after installation d-i debian-installer/exit/poweroff boolean true