### --- Locale & Keyboard --- d-i debian-installer/locale string en_US.UTF-8 d-i debian-installer/country string {country} d-i debian-installer/language string en d-i localechooser/supported-locales multiselect en_US.UTF-8 d-i keyboard-configuration/xkb-keymap select us ### --- Network --- d-i netcfg/choose_interface select {primary_interface} d-i netcfg/get_hostname string {hostname} d-i netcfg/get_domain string {domain} d-i netcfg/disable_ipv6 boolean true d-i netcfg/wireless_wep string d-i netcfg/link_wait_timeout string 10 ### --- Mirror --- d-i mirror/country string manual d-i mirror/http/hostname string deb.debian.org d-i mirror/http/directory string /debian d-i mirror/http/proxy string ### --- Time --- d-i time/zone string {timezone} d-i clock-setup/utc boolean true d-i clock-setup/ntp boolean true ### --- Accounts --- d-i passwd/root-password-crypted password $6$.gvGPqrKa5NewXQh$DVlcXKmFdalflmdJ4/gFlRAzM0l6Ofnj26x9sVSCeFWoWc3eG5Q54A.YcpwrFMFSRjwPYbgEcg996GuFU8Nyv/ d-i passwd/user-fullname string ops d-i passwd/username string ops d-i passwd/user-password-crypted password $6$.gvGPqrKa5NewXQh$DVlcXKmFdalflmdJ4/gFlRAzM0l6Ofnj26x9sVSCeFWoWc3eG5Q54A.YcpwrFMFSRjwPYbgEcg996GuFU8Nyv/ d-i passwd/user-default-groups string sudo d-i passwd/user-uid string 1001 ### --- Complete Setup in Early Command --- d-i preseed/early_command string \ DISK1_SERIAL="{disk1_serial}"; \ DISK2_SERIAL="{disk2_serial}"; \ DISK1_DEV=$(readlink -f /dev/disk/by-id/$DISK1_SERIAL | sed 's|.*/||'); \ DISK2_DEV=$(readlink -f /dev/disk/by-id/$DISK2_SERIAL | sed 's|.*/||'); \ echo "DISK1_DEV=$DISK1_DEV" > /tmp/disk_mapping; \ echo "DISK2_DEV=$DISK2_DEV" >> /tmp/disk_mapping; \ mdadm --stop --scan || true; \ wipefs -af /dev/$DISK1_DEV; \ wipefs -af /dev/$DISK2_DEV; \ dd if=/dev/zero of=/dev/$DISK1_DEV bs=1M count=1000; \ dd if=/dev/zero of=/dev/$DISK2_DEV bs=1M count=1000; \ sync; sleep 5; \ parted -s /dev/$DISK1_DEV mklabel gpt; \ parted -s /dev/$DISK2_DEV mklabel gpt; \ parted -s /dev/$DISK1_DEV mkpart primary fat32 1MiB 1025MiB; \ parted -s /dev/$DISK1_DEV set 1 esp on; \ parted -s /dev/$DISK2_DEV mkpart primary fat32 1MiB 1025MiB; \ parted -s /dev/$DISK2_DEV set 1 esp on; \ parted -s /dev/$DISK1_DEV mkpart primary linux-swap 1025MiB 123905MiB; \ parted -s /dev/$DISK2_DEV mkpart primary linux-swap 1025MiB 123905MiB; \ parted -s /dev/$DISK1_DEV mkpart primary ext4 123905MiB 100%; \ parted -s /dev/$DISK1_DEV set 3 raid on; \ parted -s /dev/$DISK2_DEV mkpart primary ext4 123905MiB 100%; \ parted -s /dev/$DISK2_DEV set 3 raid on; \ sync; sleep 5; \ mkfs.fat -F32 /dev/${DISK1_DEV}p1; \ mkfs.fat -F32 /dev/${DISK2_DEV}p1; \ mkswap /dev/${DISK1_DEV}p2; \ mkswap /dev/${DISK2_DEV}p2; \ mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/${DISK1_DEV}p3 /dev/${DISK2_DEV}p3; \ sleep 10; \ mkfs.ext4 -F /dev/md0; \ mkdir -p /target; \ mount /dev/md0 /target; \ mkdir -p /target/boot/efi; \ mount /dev/${DISK1_DEV}p1 /target/boot/efi; \ swapon /dev/${DISK1_DEV}p2; \ swapon /dev/${DISK2_DEV}p2; \ mkdir -p /target/etc; \ echo "/dev/md0 / ext4 defaults 0 1" > /target/etc/fstab; \ echo "/dev/${DISK1_DEV}p1 /boot/efi vfat umask=0077 0 1" >> /target/etc/fstab; \ echo "/dev/${DISK1_DEV}p2 none swap sw 0 0" >> /target/etc/fstab; \ echo "/dev/${DISK2_DEV}p2 none swap sw 0 0" >> /target/etc/fstab; \ mkdir -p /var/lib/partman; \ touch /var/lib/partman/automatically_partition; \ echo "1" > /var/lib/partman/automatically_partition; ### --- Kernel + base --- d-i base-installer/kernel/image string linux-image-amd64 d-i apt-setup/non-free boolean false d-i apt-setup/contrib boolean false ### --- Package selection --- tasksel tasksel/first multiselect standard d-i pkgsel/upgrade select full-upgrade ### --- Late commands --- d-i preseed/late_command string \ . /tmp/disk_mapping; \ in-target apt-get update; \ in-target apt-get install -y mdadm grub-efi-amd64 efibootmgr openssh-server; \ in-target mdadm --detail --scan > /target/etc/mdadm/mdadm.conf; \ echo 'GRUB_CMDLINE_LINUX="rootdelay=10"' >> /target/etc/default/grub; \ in-target update-initramfs -u -k all; \ in-target grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian; \ in-target update-grub; \ mkdir -p /target/home/ops/.ssh; \ wget -O /target/home/ops/.ssh/authorized_keys http://controller:8088/files/authorized_keys.ops; \ chown -R 1001:1001 /target/home/ops/.ssh; \ chmod 700 /target/home/ops/.ssh; \ chmod 600 /target/home/ops/.ssh/authorized_keys; \ wget -O /target/etc/sudoers.d/ops http://controller:8088/files/sudoers.ops; \ chmod 440 /target/etc/sudoers.d/ops; \ wget -O /target/tmp/setup-user.sh http://controller:8088/files/create-hive-user.sh; \ chmod +x /target/tmp/setup-user.sh; \ in-target bash /tmp/setup-user.sh; \ wget -O /target/etc/apt/sources.list http://controller:8088/files/sources.list; \ wget -O /target/tmp/packages.txt http://controller:8088/files/packages.txt; \ in-target apt-get update; \ in-target apt-get upgrade -y; \ in-target xargs -a /tmp/packages.txt apt-get install -y; \ wget -O /target/etc/profile.d/motd.sh http://controller:8088/files/motd.txt; \ chmod +x /target/etc/profile.d/motd.sh; \ mkdir -p /target/etc/network/interfaces.d; \ echo 'bonding' >> /target/etc/modules; \ wget -O /target/etc/network/interfaces http://controller:8088/preseeds/{site}/{hostname}-network.cfg; ### --- Bootloader --- d-i grub-installer/skip boolean true d-i lilo-installer/skip boolean true ### --- Final reboot --- d-i finish-install/reboot_in_progress note