# This is a sample Debian preseed for a netinstall ISO. # Serve it over HTTP (for example: python3 -m http.server 80) and boot the VM # with: auto=true priority=critical preseed/url=http://10.10.0.100/preseed.cfg # IMPORTANT: # The Debian preseed directives must start at column 1 with "d-i ...". # Do not add leading spaces before any directive; the installer ignores them. # Localization d-i debian-installer/locale string en_US d-i console-setup/ask_detect boolean false d-i keyboard-configuration/xkb-keymap select us d-i localechooser/supported-locales multiselect en_US.UTF-8 # Network d-i netcfg/choose_interface select auto d-i netcfg/get_hostname string debian-13-template d-i netcfg/get_domain string rychannel.com # User setup d-i passwd/root-login boolean true d-i passwd/make-user boolean false d-i passwd/root-password password letmeinryan d-i passwd/root-password-again password letmeinryan # d-i passwd/user-fullname string Ryan Murphy # d-i passwd/username string ryanmurphy # d-i passwd/user-password-crypted password $6$rounds=5000$examplehash$example d-i user-setup/allow-password-weak boolean true # Timezone d-i clock-setup/utc boolean true d-i time/zone string America/Chicago # Disk partitioning d-i partman-auto/method string lvm d-i partman-auto-lvm/guided_size string max d-i partman-auto/choose_recipe select atomic d-i partman-lvm/device_remove_lvm boolean true d-i partman-lvm/confirm boolean true d-i partman-lvm/confirm_nooverwrite boolean true d-i partman/default_filesystem string ext4 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 # Package selection # Use a headless server install only. This does not install a desktop environment. tasksel tasksel/first multiselect standard, ssh-server d-i pkgsel/include string openssh-server sudo cloud-init qemu-guest-agent d-i pkgsel/upgrade select safe-upgrade d-i base-installer/install-recommends boolean false d-i pkgsel/install-language-support boolean false popularity-contest popularity-contest/participate boolean false # Boot loader d-i grub-installer/bootdev string /dev/sda d-i grub-installer/only_debian boolean true d-i grub-installer/with_other_os boolean false d-i finish-install/reboot_in_progress note # Final command d-i preseed/late_command string in-target sh -c 'sed -i "s/^#\\?PermitRootLogin.*/PermitRootLogin yes/" /etc/ssh/sshd_config; sed -i "s/^#\\?PasswordAuthentication.*/PasswordAuthentication yes/" /etc/ssh/sshd_config; systemctl restart ssh; systemctl enable --now qemu-guest-agent; cloud-init clean --logs --machine-id || true' # Optional: install the Puppet agent automatically after the base install completes. # Replace the repo URL and package name with the ones used by your Puppet environment. # Example: # d-i preseed/late_command string in-target sh -c ' # set -e # export DEBIAN_FRONTEND=noninteractive # apt-get update # apt-get install -y ca-certificates curl gnupg # curl -fsSL https:///puppet-release.deb -o /tmp/puppet-release.deb # dpkg -i /tmp/puppet-release.deb # apt-get update # apt-get install -y puppet-agent # /opt/puppetlabs/bin/puppet agent --enable # ' # # For Puppet Enterprise, the preferred pattern is usually to install the PE agent package # from your PE repo or bootstrap script provided by your Puppet server, rather than a generic # open-source puppet-agent package. # Uncomment the lines above and replace the placeholder values before using this file.