blob: 759a0dfe33c1a452dd7c6270cf4e34490fd27872 [file] [log] [blame]
#_preseed_V1
{#
SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
SPDX-License-Identifier: Apache-2.0
#}
# preseed docs: https://help.ubuntu.com/18.04/installation-guide/amd64/apbs04.html
# enable automatic install
d-i auto-install/enable boolean true
# ask only critical level questions
d-i debconf/priority select critical
# locale and keyboard
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
d-i clock-setup/utc boolean true
d-i time/zone string Etc/UTC
d-i clock-setup/ntp boolean true
d-i clock-setup/ntp-server string ntp.ubuntu.com
# network and hostname
{% if 'iface' in item %}
d-i netcfg/choose_interface select {{ item['iface'] }}
{% else %}
d-i netcfg/choose_interface select auto
{% endif %}
d-i netcfg/hostname string {{ item['hostname'] }}
d-i netcfg/get_domain string {{ item['domain'] }}
d-i hw-detect/load_firmware boolean true
## Storage
# overwrite previous partitions
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-md/device_remove_md boolean true
d-i partman-md/confirm boolean true
# use lvm
d-i partman-auto/method string lvm
d-i partman-auto/init_automatically_partition select biggest_free
d-i partman-auto-lvm/guided_size string max
d-i partman-auto-lvm/new_vg_name string primary
# use gpt
d-i partman-basicfilesystems/choose_label string gpt
d-i partman-basicfilesystems/default_label string gpt
d-i partman-partitioning/choose_label string gpt
d-i partman-partitioning/default_label string gpt
d-i partman/choose_label string gpt
d-i partman/default_label string gpt
# use ext4
d-i partman/default_filesystem string ext4
# partitioning
d-i partman-auto/choose_recipe select atomic
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/alignment select optimal
d-i partman/choose_partition select finish
d-i partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
### Do NOT install on the USB stick(!)
#
# The Debian installer will install on the first disk it finds which can
# sometimes be the USB stick itself. Work around this by rolling our own auto
# detect logic which disallows installing on USB devices.
#
# Also, fix issue with grub hang on install
# https://bugs.launchpad.net/ubuntu/+source/os-prober/+bug/1663645
d-i partman/early_command string \
USBDEV_LIST="$(mktemp)"; \
list-devices usb-partition | sed "s/\(.*\)./\1/" > "$USBDEV_LIST"; \
BOOTDEV="$(list-devices disk | grep -vf "$USBDEV_LIST" | head -n 1)"; \
debconf-set partman-auto/disk "$BOOTDEV"; \
debconf-set grub-installer/bootdev "$BOOTDEV"; \
while /bin/true; do sleep 0.01; rm -f /target/etc/grub.d/30_os-prober; done &
d-i grub-installer/only_debian boolean true
## Software
# install mirror
d-i mirror/country string manual
d-i mirror/protocol select http
d-i mirror/http/hostname string us.archive.ubuntu.com
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string
# Use the HWE kernel
d-i base-installer/kernel/image select linux-generic-hwe-18.04
base-installer base-installer/kernel/image select linux-generic-hwe-18.04
# install openssh and python3
d-i pkgsel/include string openssh-server python3
# don't install any predefined package groups
d-i tasksel/first multiselect none
# upgrade all packages on install
d-i pkgsel/upgrade select full-upgrade
# don't allow root login over SSH
openssh-server openssh-server/permit-root-login boolean true
openssh-server openssh-server/password-authentication boolean true
# don't automatically install updates on running system
pkgsel pkgsel/update-policy select none
# verbose boot, no splashscreen
d-i debian-installer/quiet boolean false
d-i debian-installer/splash boolean false
## Users
# disable root account
d-i passwd/root-login boolean false
d-i passwd/root-password-crypted password !!
# create user
d-i passwd/username string onfadmin
d-i passwd/user-fullname string ONFAdmin
d-i passwd/user-password-crypted password {{ preseed_onfadmin_pw_crypt }}
# add SSH pubkey key to user, secure SSHd
d-i preseed/late_command string \
in-target mkdir -p --mode=0700 /home/onfadmin/.ssh ;\
in-target sh -c 'echo "{{ preseed_onfadmin_ssh_pubkey }}" > /home/onfadmin/.ssh/authorized_keys';\
in-target chmod 0600 /home/onfadmin/.ssh/authorized_keys;\
in-target chown -R onfadmin:onfadmin /home/onfadmin/.ssh;\
in-target sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config;\
in-target sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config;
## Reboot
d-i finish-install/reboot_in_progress note