#!/bin/bash set -euf -o pipefail OS_DISTRO=$(. /etc/os-release; echo $ID) OS_MAJOR_VERSION=$(. /etc/os-release; echo $VERSION_ID | cut -d . -f 1) export DEBIAN_FRONTEND=noninteractive apt-get update -q apt-get full-upgrade -y -q apt-get install -y -q --no-install-recommends openssh-server if [ "$OS_DISTRO" == "ubuntu" ] && [ "$OS_MAJOR_VERSION" -ge 20 ]; then apt-get install -y -q --no-install-recommends python3 python3-apt else apt-get install -y -q --no-install-recommends python python-apt fi passwd -d root && passwd -l root {% if install_distro == "debian" %} sed -e 's/^allow-hotplug/auto/' -i /etc/network/interfaces {% endif %} sed -r 's#(\s+/var/log\s+ext4\s+)defaults#\1noatime,nodev,noexec#g' -i /etc/fstab mkdir -p -m 0700 /target/root/.ssh cat < /root/.ssh/authorized_keys {{ ssh_keys_root | join('\n') }} EOK {% if hostvars[install_hostname].ansible_port is defined %} sed -e 's/^\(\s*#*\s*Port.*\)/Port {{ hostvars[install_hostname].ansible_port }}/' -i /etc/ssh/sshd_config {% endif %} {# this is actually only needed on ubuntu bionic and beyond but should not hurt on other installations either #} swapoff -a sed -e '/^\/swapfile/d' -i /etc/fstab rm -f /swapfile {% if install_cooked.disks.root_lvm_size != "all" %} sed -e '/\/dummy/d' -i /etc/fstab cat > /post-install-finalize < /dev/null | awk -F = '/MD_DEVICE_.*_DEV=/ { print(\$2) }') if [ -n "\$raid_devices" ]; then mdadm --stop /dev/md2 2> /dev/null for dev in \$raid_devices; do wipefs -a "\$dev" done sed -e '/^ARRAY \/dev\/md\/2 /d' -i /etc/mdadm/mdadm.conf update-initramfs -u fi rm -rf /dummy EOF chmod +x /post-install-finalize {% endif %} {% if install_distro == "debian" %} update-grub {% endif %} echo "postinst.sh finished successfully"