summaryrefslogtreecommitdiff
path: root/roles/installer/debian/preseed/templates/preseed_xubuntu-focal-desktop.cfg.j2
blob: eeda994303275a88dfb7e50052ad1e5835e65952 (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
161
162
163
164
165
166
167
168
169
170
171
172
#########################################################################
#  spreadspace preseed file for Ubuntu focal based Workstations
#########################################################################

d-i debian-installer/language string en
d-i debian-installer/country string AT
d-i debian-installer/locale string de_AT.UTF-8
d-i localechooser/preferred-locale string de_AT.UTF-8
d-i localechooser/supported-locales multiselect de_DE.UTF-8, en_US.UTF-8
d-i keyboard-configuration/xkb-keymap select de
## TODO: this still doesn't work properly...
d-i keyboard-configuration/layout select German (Austria)
d-i keyboard-configuration/layoutcode string at
d-i keyboard-configuration/layoutcode string nodeadkeys
d-i console-setup/ask_detect boolean false

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.name) }}
{% 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.address | ipaddr('address') }}
d-i netcfg/get_netmask string {{ hostvars[install_hostname].network_cooked.primary.address | ipaddr('netmask') }}
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].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 partman/confirm boolean true
d-i partman/confirm_nooverwrite boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-md/confirm boolean true
d-i partman-md/confirm_nooverwrite boolean true
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-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-auto-lvm/no_boot 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 }} } \
              .                                                                           \
              15360 10000 20480 ext4                                                      \
                      $lvmok{ } in_vg{ {{ hostvars[install_hostname].host_name }} }       \
                      method{ format } format{ }                                          \
                      use_filesystem{ } filesystem{ ext4 }                                \
                      mountpoint{ / }                                                     \
              .                                                                           \
              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 }                                            \
              .                                                                           \
              20480 10000 40960 ext4                                                      \
                      $lvmok{ } in_vg{ {{ hostvars[install_hostname].host_name }} }       \
                      method{ format } format{ }                                          \
                      use_filesystem{ } filesystem{ ext4 }                                \
                      mountpoint{ /home }                                                 \
              .                                                                           \
              16 20000 -1 ext4                                                            \
                      $lvmok{ } in_vg{ {{ hostvars[install_hostname].host_name }} }       \
                      lv_name{ dummy }                                                    \
              .

d-i partman-basicfilesystems/no_swap true
d-i partman-partitioning/confirm_write_new_label boolean true
d-i partman/choose_partition select finish


## boot devices are configured by partman/early_command
d-i grub-installer/bootdev seen true
d-i grub-installer/choose_bootdev seen true
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean false


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

tasksel tasksel/first multiselect xubuntu-desktop
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 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_virtual_machine %}
    in-target bash -c "apt-get install -y -q --no-install-recommends linux-image-virtual"; \
    in-target bash -c "apt-get purge -y -q linux-image-generic intel-microcode amd64-microcode iucode-tool linux-firmware"; \
{% endif %}
{% 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 '[Match]' > /etc/systemd/network/90-namepolicy.link"; \
    in-target bash -c "echo 'OriginalName=*' >> /etc/systemd/network/90-namepolicy.link"; \
    in-target bash -c "echo '' >> /etc/systemd/network/90-namepolicy.link"; \
    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/