Last active
November 19, 2021 16:17
-
-
Save yogendra/15d98dde7760b35ea13222de2093d89c to your computer and use it in GitHub Desktop.
Vagrant Hacks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
echo "vagrant ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/vagrant | |
sed -i "s/^#UseDNS no/UseDNS no/g" /etc/ssh/sshd_config | |
curl -L https://raw.githubusercontent.com/hashicorp/vagrant/main/keys/vagrant.pub >> ~/.ssh/authorized_keys | |
apt update | |
apt install open-vm-tools -qqy | |
curl https://raw.githubusercontent.com/boxcutter/ubuntu/master/script/cleanup.sh | bash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -eux | |
SSH_USER=${SSH_USERNAME:-vagrant} | |
DISK_USAGE_BEFORE_CLEANUP=$(df -h) | |
# Make sure udev does not block our network - http://6.ptmc.org/?p=164 | |
echo "==> Cleaning up udev rules" | |
rm -rf /dev/.udev/ | |
rm /lib/udev/rules.d/75-persistent-net-generator.rules | |
echo "==> Cleaning up leftover dhcp leases" | |
# Ubuntu 10.04 | |
if [ -d "/var/lib/dhcp3" ]; then | |
rm /var/lib/dhcp3/* | |
fi | |
# Ubuntu 12.04 & 14.04 | |
if [ -d "/var/lib/dhcp" ]; then | |
rm /var/lib/dhcp/* | |
fi | |
# Blank machine-id (DUID) so machines get unique ID generated on boot. | |
# https://www.freedesktop.org/software/systemd/man/machine-id.html#Initialization | |
echo "==> Blanking systemd machine-id" | |
if [ -f "/etc/machine-id" ]; then | |
truncate -s 0 "/etc/machine-id" | |
fi | |
# Add delay to prevent "vagrant reload" from failing | |
echo "pre-up sleep 2" >> /etc/network/interfaces | |
echo "==> Cleaning up tmp" | |
rm -rf /tmp/* | |
# Cleanup apt cache | |
apt-get -y autoremove --purge | |
apt-get -y clean | |
apt-get -y autoclean | |
echo "==> Installed packages" | |
dpkg --get-selections | grep -v deinstall | |
# Remove Bash history | |
unset HISTFILE | |
rm -f /root/.bash_history | |
rm -f /home/${SSH_USER}/.bash_history | |
# Clean up log files | |
find /var/log -type f | while read f; do echo -ne '' > "${f}"; done; | |
echo "==> Clearing last login information" | |
>/var/log/lastlog | |
>/var/log/wtmp | |
>/var/log/btmp | |
# Whiteout /boot | |
count=$(df --sync -kP /boot | tail -n1 | awk -F ' ' '{print $4}') | |
let count-- | |
dd if=/dev/zero of=/boot/whitespace bs=1024 count=$count | |
rm /boot/whitespace | |
echo '==> Clear out swap and disable until reboot' | |
set +e | |
swapuuid=$(/sbin/blkid -o value -l -s UUID -t TYPE=swap) | |
case "$?" in | |
2|0) ;; | |
*) exit 1 ;; | |
esac | |
set -e | |
if [ "x${swapuuid}" != "x" ]; then | |
# Whiteout the swap partition to reduce box size | |
# Swap is disabled till reboot | |
swappart=$(readlink -f /dev/disk/by-uuid/$swapuuid) | |
/sbin/swapoff "${swappart}" | |
dd if=/dev/zero of="${swappart}" bs=1M || echo "dd exit code $? is suppressed" | |
/sbin/mkswap -U "${swapuuid}" "${swappart}" | |
fi | |
# Zero out the free space to save space in the final image | |
dd if=/dev/zero of=/EMPTY bs=1M || echo "dd exit code $? is suppressed" | |
rm -f /EMPTY | |
# Make sure we wait until all the data is written to disk, otherwise | |
# Packer might quite too early before the large files are deleted | |
sync | |
echo "==> Disk usage before cleanup" | |
echo "${DISK_USAGE_BEFORE_CLEANUP}" | |
echo "==> Disk usage after cleanup" | |
df -h |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment