blob: 759a0dfe33c1a452dd7c6270cf4e34490fd27872 [file] [log] [blame]
Zack Williams5b5d9a72020-11-06 13:59:06 -07001#_preseed_V1
2{#
3SPDX-FileCopyrightText: © 2020 Open Networking Foundation <support@opennetworking.org>
4SPDX-License-Identifier: Apache-2.0
5#}
6# preseed docs: https://help.ubuntu.com/18.04/installation-guide/amd64/apbs04.html
7
8# enable automatic install
9d-i auto-install/enable boolean true
10
11# ask only critical level questions
12d-i debconf/priority select critical
13
14# locale and keyboard
15d-i debian-installer/locale string en_US.UTF-8
16d-i console-setup/ask_detect boolean false
17d-i keyboard-configuration/xkb-keymap select us
18
19# clock
20d-i clock-setup/utc boolean true
21d-i time/zone string Etc/UTC
22d-i clock-setup/ntp boolean true
23d-i clock-setup/ntp-server string ntp.ubuntu.com
24
25# network and hostname
Zack Williams3fcd2c52021-03-02 21:44:52 -070026{% if 'iface' in item %}
27d-i netcfg/choose_interface select {{ item['iface'] }}
28{% else %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070029d-i netcfg/choose_interface select auto
Zack Williams3fcd2c52021-03-02 21:44:52 -070030{% endif %}
Zack Williams5b5d9a72020-11-06 13:59:06 -070031d-i netcfg/hostname string {{ item['hostname'] }}
Zack Williamsdb394142020-11-11 22:52:34 -070032d-i netcfg/get_domain string {{ item['domain'] }}
Zack Williams5b5d9a72020-11-06 13:59:06 -070033d-i hw-detect/load_firmware boolean true
34
35## Storage
36# overwrite previous partitions
37d-i partman-lvm/device_remove_lvm boolean true
38d-i partman-lvm/confirm boolean true
39d-i partman-lvm/confirm_nooverwrite boolean true
40d-i partman-md/device_remove_md boolean true
41d-i partman-md/confirm boolean true
42
43# use lvm
44d-i partman-auto/method string lvm
45d-i partman-auto/init_automatically_partition select biggest_free
46d-i partman-auto-lvm/guided_size string max
47d-i partman-auto-lvm/new_vg_name string primary
48
49# use gpt
50d-i partman-basicfilesystems/choose_label string gpt
51d-i partman-basicfilesystems/default_label string gpt
52d-i partman-partitioning/choose_label string gpt
53d-i partman-partitioning/default_label string gpt
54d-i partman/choose_label string gpt
55d-i partman/default_label string gpt
56
57# use ext4
58d-i partman/default_filesystem string ext4
59
60# partitioning
61d-i partman-auto/choose_recipe select atomic
62d-i partman-partitioning/confirm_write_new_label boolean true
63d-i partman/alignment select optimal
64d-i partman/choose_partition select finish
65d-i partman/confirm boolean true
66d-i partman/confirm_nooverwrite boolean true
67
Zack Williamsdb394142020-11-11 22:52:34 -070068### Do NOT install on the USB stick(!)
69#
70# The Debian installer will install on the first disk it finds which can
71# sometimes be the USB stick itself. Work around this by rolling our own auto
72# detect logic which disallows installing on USB devices.
73#
74# Also, fix issue with grub hang on install
Zack Williams5b5d9a72020-11-06 13:59:06 -070075# https://bugs.launchpad.net/ubuntu/+source/os-prober/+bug/1663645
76d-i partman/early_command string \
Zack Williamsdb394142020-11-11 22:52:34 -070077 USBDEV_LIST="$(mktemp)"; \
78 list-devices usb-partition | sed "s/\(.*\)./\1/" > "$USBDEV_LIST"; \
79 BOOTDEV="$(list-devices disk | grep -vf "$USBDEV_LIST" | head -n 1)"; \
80 debconf-set partman-auto/disk "$BOOTDEV"; \
81 debconf-set grub-installer/bootdev "$BOOTDEV"; \
Zack Williams5b5d9a72020-11-06 13:59:06 -070082 while /bin/true; do sleep 0.01; rm -f /target/etc/grub.d/30_os-prober; done &
83
84d-i grub-installer/only_debian boolean true
85
86## Software
87# install mirror
88d-i mirror/country string manual
89d-i mirror/protocol select http
90d-i mirror/http/hostname string us.archive.ubuntu.com
91d-i mirror/http/directory string /ubuntu
92d-i mirror/http/proxy string
93
94# Use the HWE kernel
95d-i base-installer/kernel/image select linux-generic-hwe-18.04
96base-installer base-installer/kernel/image select linux-generic-hwe-18.04
97
98# install openssh and python3
99d-i pkgsel/include string openssh-server python3
100
101# don't install any predefined package groups
102d-i tasksel/first multiselect none
103
104# upgrade all packages on install
105d-i pkgsel/upgrade select full-upgrade
106
107# don't allow root login over SSH
108openssh-server openssh-server/permit-root-login boolean true
109openssh-server openssh-server/password-authentication boolean true
110
111# don't automatically install updates on running system
112pkgsel pkgsel/update-policy select none
113
114# verbose boot, no splashscreen
115d-i debian-installer/quiet boolean false
116d-i debian-installer/splash boolean false
117
118## Users
119# disable root account
120d-i passwd/root-login boolean false
121d-i passwd/root-password-crypted password !!
122
123# create user
124d-i passwd/username string onfadmin
125d-i passwd/user-fullname string ONFAdmin
126d-i passwd/user-password-crypted password {{ preseed_onfadmin_pw_crypt }}
127
128# add SSH pubkey key to user, secure SSHd
129d-i preseed/late_command string \
130 in-target mkdir -p --mode=0700 /home/onfadmin/.ssh ;\
131 in-target sh -c 'echo "{{ preseed_onfadmin_ssh_pubkey }}" > /home/onfadmin/.ssh/authorized_keys';\
132 in-target chmod 0600 /home/onfadmin/.ssh/authorized_keys;\
133 in-target chown -R onfadmin:onfadmin /home/onfadmin/.ssh;\
134 in-target sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin no/g' /etc/ssh/sshd_config;\
135 in-target sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/g' /etc/ssh/sshd_config;
136
137## Reboot
138d-i finish-install/reboot_in_progress note