packer/scripts/ubuntu24.sh

88 lines
2.4 KiB
Bash

#!/usr/bin/bash
# update the guest
echo '> Updating the guest ...'
sudo -u root apt-get update
sudo -u root DEBIAN_FRONTEND=noninteractive apt-get -y upgrade
sudo -u root apt-get autoremove -y
# install rc.local script
cat << 'EOL' | sudo tee /etc/rc.local
#!/bin/sh -ef
#
test -f /etc/ssh/ssh_host_dsa_key || dpkg-reconfigure openssh-server
exit 0
EOL
sudo -u root chmod +x /etc/rc.local
# grow disk
echo '> grow disk ...'
sudo -u root lvresize --resizefs -l+100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
# install the ansible user
echo '> create ansible user ...'
sudo -u root useradd -m ansible
# configure ansible user
sudo -u root mkdir -p /home/ansible/.ssh
sudo -u root bash -c "echo \"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIH9H3XK4IaK2pd8xegsbCm0at70kCi33vYkHDccV3Iyn\" >> /home/ansible/.ssh/authorized_keys"
sudo -u root chmod 700 /home/ansible/.ssh
sudo -u root chmod 600 /home/ansible/.ssh/authorized_keys
sudo -u root chown -R ansible:ansible /home/ansible
# configure sudo for ansible
sudo -u root bash -c "echo \"ansible ALL=(ALL) NOPASSWD: ALL\" >> /etc/sudoers.d/ansible"
# cloud-init cleanup
while [ ! -f /var/lib/cloud/instance/boot-finished ]; do
echo '> Waiting for cloud-init ...';
sleep 1;
done
sudo -u root rm -f /etc/cloud/cloud.cfg.d/99-installer.cfg
sudo -u root cloud-init clean
# cleaning logs
echo '> cleaning logs ...'
sudo -u root rm -rf /var/log/*
# cleans persistent udev rules
echo '> cleaning persistent udev rules ...'
if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then
sudo -u root rm /etc/udev/rules.d/70-persistent-net.rules
fi
# cleans /tmp directories
echo '> cleaning /tmp directories ...'
sudo -u root rm -rf /tmp/*
sudo -u root rm -rf /var/tmp/*
# cleans SSH keys
echo '> cleaning ssh host keys ...'
sudo -u root rm -f /etc/ssh/ssh_host_*
# sets hostname to localhost
echo '> setting hostname to localhost ...'
sudo -u root bash -c "cat /dev/null > /etc/hostname"
sudo -u root hostnamectl set-hostname localhost
# cleans apt.
echo '> cleaning apt-get ...'
sudo -u root apt-get clean
# cleans the machine-id
echo '> cleaning the machine-id ...'
sudo -u root truncate -s 0 /etc/machine-id
sudo -u root rm /var/lib/dbus/machine-id
sudo -u root ln -s /etc/machine-id /var/lib/dbus/machine-id
# cleans shell history
echo '> cleaning shell history ...'
unset HISTFILE
history -cw
echo > ~/.bash_history
sudo -u root rm -fr /root/.bash_history
# all done
echo '> done.'
echo '> packer template build -- complete'