summaryrefslogtreecommitdiff
path: root/roles/installer/debian/preseed/templates/preseed_ubuntu-focal.cfg.j2
blob: 5e15d240b3183ddb24332469da31e6bdec936d07 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
#########################################################################
#  spreadspace preseed file for Ubuntu focal based VMs
#########################################################################

d-i debian-installer/language string en
d-i debian-installer/country string AT
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/preferred-locale string en_US.UTF-8
d-i localechooser/supported-locales multiselect de_DE.UTF-8, de_AT.UTF-8
d-i console-setup/ask_detect boolean false
d-i keyboard-configuration/xkb-keymap select us
d-i keyboard-configuration/layoutcode string us

d-i hw-detect/load_firmware boolean false

{% if preseed_no_netplan %}
d-i netcfg/do_not_use_netplan boolean true
{% endif %}
d-i netcfg/choose_interface select {{ install_interface | default(hostvars[install_hostname].network_cooked.primary.interface) }}
{% if 'install_dhcp' in hostvars[install_hostname] and hostvars[install_hostname].install_dhcp %}
d-i netcfg/disable_dhcp boolean false
d-i netcfg/disable_autoconfig boolean false
{% else %}
d-i netcfg/disable_dhcp boolean true
d-i netcfg/disable_autoconfig boolean true
d-i netcfg/get_ipaddress string {{ hostvars[install_hostname].network_cooked.primary.ip }}
d-i netcfg/get_netmask string {{ hostvars[install_hostname].network_cooked.primary.mask }}
d-i netcfg/get_gateway string {{ hostvars[install_hostname].network_cooked.primary.gateway }}
d-i netcfg/get_nameservers string {{ hostvars[install_hostname].network_cooked.nameservers | join(' ') }}
d-i netcfg/confirm_static boolean true
{% endif %}

d-i netcfg/hostname string {{ hostvars[install_hostname].host_name }}
d-i netcfg/get_hostname string {{ hostvars[install_hostname].host_name }}
d-i netcfg/domain string {{ hostvars[install_hostname].network_cooked.domain }}
d-i netcfg/get_domain string {{ hostvars[install_hostname].network_cooked.domain }}
d-i netcfg/wireless_wep string


d-i mirror/country string manual
d-i mirror/http/hostname string {{ apt_repo_providers[(hostvars[install_hostname].apt_repo_provider | default('default'))].ubuntu }}
d-i mirror/http/directory string /ubuntu
d-i mirror/http/proxy string


d-i passwd/make-user boolean false
d-i passwd/root-login boolean true
d-i passwd/root-password password this-very-very-secure-password-will-be-removed-by-latecommand
d-i passwd/root-password-again password this-very-very-secure-password-will-be-removed-by-latecommand


d-i clock-setup/utc boolean true
d-i time/zone string Europe/Vienna
d-i clock-setup/ntp boolean false


d-i partman/early_command string \
    debconf-set partman-auto/disk "$(readlink -f {{ hostvars[install_hostname].install_cooked.disks.primary }})"; \
    debconf-set grub-installer/bootdev "$(readlink -f {{ hostvars[install_hostname].install_cooked.disks.primary }})"; \
    umount -l /media || true

d-i grub-installer/choose_bootdev string manual
d-i grub-installer/bootdev seen true

d-i partman-auto/method string lvm
d-i partman-auto/purge_lvm_from_device boolean true
d-i partman-auto-lvm/new_vg_name string {{ hostvars[install_hostname].host_name }}
d-i partman-auto-lvm/guided_size string max

d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true

d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true

{% if (hostvars[install_hostname].install_cooked.efi | default(false)) %}
d-i partman-efi/non_efi_system boolean true
d-i partman/choose_label string gpt
d-i partman/default_label string gpt
{% endif %}
d-i partman-auto/expert_recipe string                                                     \
      boot-root ::                                                                        \
{% if (hostvars[install_hostname].install_cooked.efi | default(false)) %}
              100 100 128 fat16                                                           \
                      $defaultignore{ } $primary{ } $bootable{ }                          \
                      method{ efi } format{ }                                             \
              .                                                                           \
{% endif %}
              1000 10000 -1 ext4                                                          \
                      $defaultignore{ } $primary{ } $bootable{ }                          \
                      method{ lvm } vg_name{ {{ hostvars[install_hostname].host_name }} } \
              .                                                                           \
              2048 10000 2560 ext4                                                        \
                      $lvmok{ } in_vg{ {{ hostvars[install_hostname].host_name }} }       \
                      method{ format } format{ }                                          \
                      use_filesystem{ } filesystem{ ext4 }                                \
                      mountpoint{ / }                                                     \
              .                                                                           \
              1024 11000 1280 ext4                                                        \
                      $lvmok{ } in_vg{ {{ hostvars[install_hostname].host_name }} }       \
                      method{ format } format{ }                                          \
                      use_filesystem{ } filesystem{ ext4 }                                \
                      mountpoint{ /var }                                                  \
              .                                                                           \
              768 10000 768 ext4                                                          \
                      $lvmok{ } in_vg{ {{ hostvars[install_hostname].host_name }} }       \
                      method{ format } format{ }                                          \
                      use_filesystem{ } filesystem{ ext4 }                                \
                      mountpoint{ /var/log }                                              \
                      options/nodev{ nodev } options/noatime{ noatime }                   \
                      options/noexec{ noexec }                                            \
              .                                                                           \
              16 20000 -1 ext4                                                            \
                      $lvmok{ } in_vg{ {{ hostvars[install_hostname].host_name }} }       \
                      lv_name{ dummy }                                                    \
              .

d-i partman-auto-lvm/no_boot boolean true
d-i partman-basicfilesystems/no_swap true
d-i partman-partitioning/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


d-i base-installer/install-recommends boolean false
d-i apt-setup/security_host string {{ apt_repo_providers[(hostvars[install_hostname].apt_repo_provider | default('default'))].ubuntu }}

tasksel tasksel/first multiselect
d-i pkgsel/include string openssh-server python3 python3-apt ifupdown
d-i pkgsel/upgrade select safe-upgrade
popularity-contest popularity-contest/participate boolean false
d-i pkgsel/update-policy select none

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


d-i preseed/late_command string \
    lvremove -f {{ hostvars[install_hostname].host_name }}/dummy; \
    in-target bash -c "swapoff -a; sed -e '/^\/swapfile/d' -i /etc/fstab; rm -f /swapfile"; \
    in-target bash -c "apt-get update -q && apt-get full-upgrade -y -q"; \
{% if preseed_no_netplan %}
    in-target bash -c "apt-get purge -y -q netplan.io && apt-get autoremove -y -q && rm -rf /etc/netplan"; \
{% endif %}
    in-target bash -c "sed -e 's/^allow-hotplug/auto/' -i /etc/network/interfaces"; \
{% if preseed_force_net_ifnames_policy is defined %}
    mkdir -p /target/etc/systemd/network; \
    in-target bash -c "echo '[Link]' > /etc/systemd/network/90-namepolicy.link"; \
    in-target bash -c "echo 'NamePolicy={{ preseed_force_net_ifnames_policy }}' >> /etc/systemd/network/90-namepolicy.link"; \
    in-target bash -c "update-initramfs -u"; \
{% endif %}
    in-target bash -c "passwd -d root && passwd -l root"; \
{% if hostvars[install_hostname].ansible_port is defined %}
    in-target bash -c "sed -e 's/^\(\s*#*\s*Port.*\)/Port {{ hostvars[install_hostname].ansible_port }}/' -i /etc/ssh/sshd_config"; \
{% endif %}
    mkdir -p -m 0700 /target/root/.ssh; \
    cp /authorized_keys /target/root/.ssh/